Комментарии 14
Фиолетовый скроллбар в поле исходника на странице с примером (http://knockoutjs.com/examples/helloWorld.html) — что это?
0
Это впечатляет!
0
Хабрахабр уже давно научился нормально форматировать и подсвечивать код на джаваскрипте тегом source.
Переделайте, а то код практически нечитаемый.
Переделайте, а то код практически нечитаемый.
0
Если не ошибаюсь, первая статья по KnockoutJS на хабре. Спасибо!
Очень хорошо, что показали именно готовое решение, примеры на сайте раскрывают лишь отдельные аспекты, но не все вместе.
В свое время очень порадовала демонстрация KnockoutJS с MIX'а, channel9.msdn.com/Events/MIX/MIX11/FRM08, с чего и началось знакомство с технологией.
Очень хорошо, что показали именно готовое решение, примеры на сайте раскрывают лишь отдельные аспекты, но не все вместе.
В свое время очень порадовала демонстрация KnockoutJS с MIX'а, channel9.msdn.com/Events/MIX/MIX11/FRM08, с чего и началось знакомство с технологией.
+1
Комментарий куда-то съелся. В общем, поздравляю с первой статьей на хабре по KnockoutJS. Отличная работа и удачно собранный пример.
А кавычки в коде поправить действительно надо ;)
А кавычки в коде поправить действительно надо ;)
0
О сейчас как раз с ним ковыряюсь. Пытаюсь сделать динамическую подгрузку шаблонов и моделей.
Когда меняется 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 — меняется шаблон. Кстати, я пока не понял почему. Магия какая-то… Код подгрузки шаблона я не показал — там нет проблем. Так вот не могу понять как модель привязать к такому меняющемуся шаблону. Он обращается к основной модели и не находит там нужных свойств. Так пока писал у меня уже возникло несколько идей. Пойду проверять.
0
Разобрался. В данном случае надо так делать:
и в модели
и подгружать модель в 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.
0
Уже месяц с этой библиотекой. Пока доволен. Могу порекомендовать ссылочку на knockmeout.net — хорошие примеры, интересные разборы «полётов». На английском.
+2
Сразу говорю чтобы не пинали, статья прежде всего о KnockoutJS, но хотел бы добавить информации :)
Раз уж используется jQuery UI, то можно было бы данное «реальное боевое условие» и без KnockoutJS организовать, в jQuery UI уже давно делают или правильнее сказать доделывают работу с моделями и store. И кстати говоря никогда не работал KnockoutJS, но исходники местами очень похожи по логике своей :)
Собственно вот страничка с примерами.
Раз уж используется jQuery UI, то можно было бы данное «реальное боевое условие» и без KnockoutJS организовать, в jQuery UI уже давно делают или правильнее сказать доделывают работу с моделями и store. И кстати говоря никогда не работал KnockoutJS, но исходники местами очень похожи по логике своей :)
Собственно вот страничка с примерами.
0
А как у этого фреймворка с утечками памяти? Планирую сделать на нем приложение, работающее целый день. Не будет ли проблем?
0
Наконец на хабре статья про knockout. Спасибо огромное порадовали, статья очень интересна прочел пару раз.
Зы: статья показалась написано как то «ломано».
Зы: статья показалась написано как то «ломано».
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пример использования KnockoutJS