Комментарии 14
Фиолетовый скроллбар в поле исходника на странице с примером (http://knockoutjs.com/examples/helloWorld.html) — что это?
Это впечатляет!
Хабрахабр уже давно научился нормально форматировать и подсвечивать код на джаваскрипте тегом source.
Переделайте, а то код практически нечитаемый.
Переделайте, а то код практически нечитаемый.
Если не ошибаюсь, первая статья по KnockoutJS на хабре. Спасибо!
Очень хорошо, что показали именно готовое решение, примеры на сайте раскрывают лишь отдельные аспекты, но не все вместе.
В свое время очень порадовала демонстрация KnockoutJS с MIX'а, channel9.msdn.com/Events/MIX/MIX11/FRM08, с чего и началось знакомство с технологией.
Очень хорошо, что показали именно готовое решение, примеры на сайте раскрывают лишь отдельные аспекты, но не все вместе.
В свое время очень порадовала демонстрация KnockoutJS с MIX'а, channel9.msdn.com/Events/MIX/MIX11/FRM08, с чего и началось знакомство с технологией.
Комментарий куда-то съелся. В общем, поздравляю с первой статьей на хабре по KnockoutJS. Отличная работа и удачно собранный пример.
А кавычки в коде поправить действительно надо ;)
А кавычки в коде поправить действительно надо ;)
О сейчас как раз с ним ковыряюсь. Пытаюсь сделать динамическую подгрузку шаблонов и моделей.
Когда меняется currMenuIdx — меняется шаблон. Кстати, я пока не понял почему. Магия какая-то… Код подгрузки шаблона я не показал — там нет проблем. Так вот не могу понять как модель привязать к такому меняющемуся шаблону. Он обращается к основной модели и не находит там нужных свойств. Так пока писал у меня уже возникло несколько идей. Пойду проверять.
<div>
{{each(idx, menu) menus }}
<button data-bind="click: click">${caption}</button>
{{/each}}
</div>
<div id="sub-model-view" data-bind='template: { name: currMenuTemplate } '>
var model = {
menus:[
MenuItem('Услуги/Операции','eq-operations'),
MenuItem('Рабочие места','eq-workplaces')
],
currMenuIdx: ko.observable(0),
currMenuTemplate: function(){
return model.menus[model.currMenuIdx()].template;
}
};
function MenuItem(caption, template){
var r = {
caption: caption,
template: template,
click: function(){ ActivateMenu( r ); }
};
return r;
};
function ActivateMenu(mi){
var i = model.menus.indexOf(mi);
model.currMenuIdx(i);
$.koApplication.loadModel('ui/js/eq/'+mi.template+'.js');
}
Когда меняется currMenuIdx — меняется шаблон. Кстати, я пока не понял почему. Магия какая-то… Код подгрузки шаблона я не показал — там нет проблем. Так вот не могу понять как модель привязать к такому меняющемуся шаблону. Он обращается к основной модели и не находит там нужных свойств. Так пока писал у меня уже возникло несколько идей. Пойду проверять.
Разобрался. В данном случае надо так делать:
и в модели
и подгружать модель в subModel.
<div id="sub-model-view" data-bind='template: { name: currMenuTemplate, data: subModel } '>
и в модели
var model = {
...
currMenuTemplate: function(){
return model.menus[model.currMenuIdx()].template;
},
subModel: {...}
...
};
и подгружать модель в subModel.
Уже месяц с этой библиотекой. Пока доволен. Могу порекомендовать ссылочку на knockmeout.net — хорошие примеры, интересные разборы «полётов». На английском.
Сразу говорю чтобы не пинали, статья прежде всего о KnockoutJS, но хотел бы добавить информации :)
Раз уж используется jQuery UI, то можно было бы данное «реальное боевое условие» и без KnockoutJS организовать, в jQuery UI уже давно делают или правильнее сказать доделывают работу с моделями и store. И кстати говоря никогда не работал KnockoutJS, но исходники местами очень похожи по логике своей :)
Собственно вот страничка с примерами.
Раз уж используется jQuery UI, то можно было бы данное «реальное боевое условие» и без KnockoutJS организовать, в jQuery UI уже давно делают или правильнее сказать доделывают работу с моделями и store. И кстати говоря никогда не работал KnockoutJS, но исходники местами очень похожи по логике своей :)
Собственно вот страничка с примерами.
А как у этого фреймворка с утечками памяти? Планирую сделать на нем приложение, работающее целый день. Не будет ли проблем?
Наконец на хабре статья про knockout. Спасибо огромное порадовали, статья очень интересна прочел пару раз.
Зы: статья показалась написано как то «ломано».
Зы: статья показалась написано как то «ломано».
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пример использования KnockoutJS