Lexander
В зависимости от приходящих данных?
Не, данные уже в DOM-e, ну и можно приходящих добавить.
FishHook
Я вижу knockout именно в качестве “лёгкой” альтернативы ангуляру. Этих MVC - MVVM фреймворков
Вот! Я как раз knockout.js использовал до angular.js.
Я хотел взять от Angular.js и Knockout.js то что мне понравилось (даже на сайте упомянул)
1) Основное отличие у них - это отслеживание изменений, observable vs dirty check, последнее мне больше по душе (когда оба подходят), т.к. с observable всякой мороки, особенно мне не нравилось когда приходилось обычную переменную, которая везде используется, превращать в observable.
Т.е. я взял dirty check
2) Ang directives vs ko bindings, тут мне биндинги нокаута больше нравятся, из-за простоты, тебе передали element, далее делай что хочешь, никакой магии и т.п., по сути я этот способ и выбрал.
3) Проверка наличия директив, если директивы нет - то нокаут ругается в отличие от ангулара. +Взято.
4) Фильтры взял у ангулара.
5) описание биндинга: ng-click=“foo()” vs data-bind=“click: foo” - взял как в ангуларе.
6) ng-repeat vs foreach: отличие “крутить” дочерние или текущий DOM, в ангуларе оказался удобнее, взял его. хотя это всего лишь директива, которых можно разных сделать.
7) applyBinding взял у нокаута - подсунул элемент и поехало - просто и удобно.
Вот, наверно это все что я взял о обоих. Далее, что я не взял:
“Выкинул” из ангулара: constant, value, factory, service, provider - абстрактная хрень, которая убивает гибкость, вносит путаницу и т.п., но дает “стандарт”, вот вы используете фабрики?
Туда же приложения и зависимые инъекции, вот на счет зависимых инъекций - спорный вопрос, кому то они могут понравится, конкретно мне - нет, так же Армин Роначер негативно о них отзывался, мол не js стиль.
Вот, шелуху выкинули, осталось самое главное: биндинг + $digest + директивы. По сути aLight из этого же и состоит: биндинг + $scan (dirty check) + директивы.
Ну ещё я в aLight добавил статический биндинг: {{=variable}} помимо {{variable}}, “наследование” директив, ну ещё пара плюшек тут описал:
http://habrahabr.ru/post/208282/Вообщем пытался сделать микс angular.js + knockout.js
edit: добавил пару пунктов