Comments 21
Использую что то подобное. Не делал свой templateEngine, просто грузил шаблоны jQuery — он все равно используется.
У меня $.get() возвращает промис, который присваивается в виде поля модуля templateReady и потом код который должен работать, когда шаблон уже загружен просто использует этот промис:
self.templateReady.then(function(){… });
В остальном очень похоже — require,js для модулей, вложенность моделей.
Еще для модульности в knockout у меня есть такая штука:
github.com/xdenser/knockout-component
Правда загрузка шаблонов и модулей туда не встроена специально, чтобы можно было сделать, как нравится.
У меня $.get() возвращает промис, который присваивается в виде поля модуля templateReady и потом код который должен работать, когда шаблон уже загружен просто использует этот промис:
self.templateReady.then(function(){… });
В остальном очень похоже — require,js для модулей, вложенность моделей.
Еще для модульности в knockout у меня есть такая штука:
github.com/xdenser/knockout-component
Правда загрузка шаблонов и модулей туда не встроена специально, чтобы можно было сделать, как нравится.
+2
А если в качестве шаблонизатора использовать underscore?
А раз использовать underscore можно сделать еще один шаг, и использовать knockback?
А раз использовать underscore можно сделать еще один шаг, и использовать knockback?
+2
А вы его (knockback) используете уже где то на серьезных проектах?
0
Спасибо за knockback. Знаю backbone, но пока в голове не укладывается, как его использовать совместно с knockout. Поковыряю примеры.
0
Есть ли роутинг в вашем knockout? Если есть, можно ли его сделать вложенным? Как у него с history API?
+1
В нокауте нет роутинга. Это инструмент для биндинга. Я использовал Sammy.js для роутинга
Есть отличный пример построения SPA на Pluralsight pluralsight.com/training/Courses/TableOfContents/spa
Если что, то этот курс можно найти на торрентах.
Есть отличный пример построения SPA на Pluralsight pluralsight.com/training/Courses/TableOfContents/spa
Если что, то этот курс можно найти на торрентах.
+2
Вот до чего крутой этот курс, но Папа накрутил там конечно с датасервисами на клиенте.
0
А модели knockout имеют методы для общения с сервером? Или это тоже нужно брать в свои руки?
0
В моем — есть и то и то. Не стал захламлять пример.
Но роутинг довольно простой и ограниченный — основные страницы, доступные из меню в 1 клик, имеют названия. Всякая мелочь типа всплывающих окон названий не имеет, и не меняет url. Т.е. роутинг не вложенный. Работает просто — в модуле меню висит метод на onhashchange, который по хэшу грузит в currentState то что нужно. Клики по ссылкам меню прописывают новый hash.
Вроде как в github.com/rniemeyer/SamplePresentation так же устроен.
Но роутинг довольно простой и ограниченный — основные страницы, доступные из меню в 1 клик, имеют названия. Всякая мелочь типа всплывающих окон названий не имеет, и не меняет url. Т.е. роутинг не вложенный. Работает просто — в модуле меню висит метод на onhashchange, который по хэшу грузит в currentState то что нужно. Клики по ссылкам меню прописывают новый hash.
Вроде как в github.com/rniemeyer/SamplePresentation так же устроен.
0
У него никак. Но ничего вам не помешает использовать какую-нибудь стороннюю библиотеку — ту же history.js — и замапить необходимые observables в урлу.
0
angularjs от google решает те же задачи что и knockout плюс роутинг, плюс RESTful сервисы плюс dependency injection плюс фильтры данных. До того как с ним познакомился knockout был моим неоспоримым чемпионом.
0
Посмотрели в сторону angularjs, посмотрели количество отрытых багов и время, которые они там висят… и решили, что нет.
Хотя сам подход к организации кода и организации юнит-тестирования у них, несомненно, интересный.
Хотя сам подход к организации кода и организации юнит-тестирования у них, несомненно, интересный.
+1
Статистика из github issues — 400/1444 = 27,7% у AngularJS против 177/662 = 26,7% у Knockout. Вроде не сказать, чтобы великая разница. Или Вы как-то по-другому оценивали? Еще хороший вопрос, какие из задач актуальны для 1.х ветки, что из низ баги, что feature-реквесты, а что просто правка документации…
+1
Хорошая идея, продолжайте в том же духе! :-)
0
Если кому интересно подробнее, в этом видео чувак рассказывает и показывает knockout:
www.devclub.eu/2011/07/30/soloduho-knockout-js/
www.devclub.eu/2011/07/30/soloduho-knockout-js/
0
Only those users with full accounts are able to leave comments. Log in, please.
Пишем сложное приложение на knockoutjs