Да, уже нашел. Все же стоило бы отдельно упомянуть:)
По поводу неудоства работы в контроллере: если получение данных асинхронно, то в любом случае в колбэке придется с ними работать.
А какие проблемы с директивами, какой трешак? Ну, работы чуть больше выходит, да, но вот серьезных проблем при полностью правильном подходе не обнаруживал. Ну и да, ангуляр-то предназначен как раз для сингл-пейдж приоложений, не для простеньких сайтов.
Поиграйте в упомянутую выше цивилизацию, в новый xcom, в dark souls (осторожно только), в hotline miami, в faster then light. Масса интересных игр. А еще масса игр с прекрасным миром — чего только стоит «тупой боевик» бордерлэндс, которому хочется стоя аплодировать за реплики персонажей.
Не смотрели в сторону MVVM- фреймворков? AngularJS, EmberJS (может быть каких-то аналогов)? MVVM представляется более логичным и подходящим для фронт-енда по сравнению с MVC. Опять-же, верстальшики будут в восторге, да еще и смогут помимо верстки добавлять базовую динамику для вьюх.
Не все решения там хороши, но заглянуть в реализации очень полезно — узнал для себя много нового из того, чего нет или невозможно найти в документации.
И да, вообще на данный момент документация — одна из главных проблем фреймворка. Код документирован прекрасно, но на офф.сайте есть далеко не все.
В RoR-тусовке кофе уже практически стандарт. Сам вот нынешний проект таки решился писать на кофе. Да, глазам зацепиться не за что, да, местами чувствуешь себя ограниченным, но скорость разработки явно выше.
В AngularJS есть $scope.$watch("variable", function() { ... }) — в общем-то те-же observerables. А вот по поводу кастомных биндингов это вы совсем зря — есть же взиожность добавления кастомынх директив, даже на главной странице есть пример (про компоненты табов). Плюс за счет тех-же директив в ангуляре легко реализуются reusable-компоненты, с которыми в knockout была беда, насколько я понял (выбирал между двумя фреймворками).
Почему-то вот всегда люди, жалующиеся на разложение современного общества забывают о достаточно жестоких нравах общества прошлых лет, представляя себе какой-то блаженный абсолютно добрый чистый мир прошлого. Сейчас секс воспринимается как развлечение, а раньше женщин были не более чем скот, сейчас школьники курят травку и сидят в сети сутками, а раньше стояли на горохе в школе. Примеров тысячи.
Уж лучше секс/наркотики/рокнролл, чем рабство/бесправие/детский труд.
По поводу неудоства работы в контроллере: если получение данных асинхронно, то в любом случае в колбэке придется с ними работать.
В чем кайф:
Работаем с промисом как с обычным объектом:
Ангуляр сам дождется пока все промисы в шаблоне не будут выполнены, и только потом отрендерит его с результируюшими объектами. Красота и удобство.
Упс, выше уже ответили наполовину.
И да, вообще на данный момент документация — одна из главных проблем фреймворка. Код документирован прекрасно, но на офф.сайте есть далеко не все.
$scope.$watch("variable", function() { ... })
— в общем-то те-же observerables. А вот по поводу кастомных биндингов это вы совсем зря — есть же взиожность добавления кастомынх директив, даже на главной странице есть пример (про компоненты табов). Плюс за счет тех-же директив в ангуляре легко реализуются reusable-компоненты, с которыми в knockout была беда, насколько я понял (выбирал между двумя фреймворками).Уж лучше секс/наркотики/рокнролл, чем рабство/бесправие/детский труд.