Нокаут очень хорош для одностраничных приложений (можно иметь одну большую разделяемую модель с данными — этакое хранилище и несколько маленьких для специфических шаблонов), но если реальных страниц несколько, можно выносить используемые модели данных в отдельные файлы. Тут еще зависит от конкретного случая, путей решения может быть несколько. Иногда лучше расширять модель, а иногда иметь несколько не связанных.
А поисковики же научились исполнять js и индексировать ajax запросы, есть даже официальные туториалы от яндекса и гугла и много статей на хабре. Может я не знаю каких-то особенностей, но если вам это не подходит, то можно для поисковиков отдавать статическую страницу, а для браузеров нормальную. Или после загрузки страницы запрашивать json (или парсить страницу) и заменять статические данные — шаблонами, т.е. рендерить заново, но только уже нокаутом.
Что вы имеете в виду под модульностью? Возможность использовать несколько моделей на одной странице, использование разделяемой модели (когда одна модель и несколько шаблонов)? Или просто приведите пару примеров.
С задачей заполнения моделей из уже готового html не сталкивался. И насколько я знаю, декларативная модель нокаута это и не собирается поддерживать. Полагаю, что лучше получить данные с сервера и поместить их в DOM уже на клиенте. Можно пример, в каких условиях вам это понадобилось?
Как это круто, спасибо, не подумал, что можно к любым событиям привязываться таким образом (видать в документации пропустил этот момент). Добавлю это в статью.
Чтобы сделать качественный интерфейс, придётся реагировать не только на обновления модели, но и на другие события из DOM. В данный момент мне кажется, что привязка обработчиков через биндинг — это нормально, возможно я не прав или не имею достаточного опыта, можете привести пример вашей реализации?
А нокаут и не предоставляет никаких методов для работы с сервером, разве что работа с json, просто задача библиотеки другая. И как мне кажется, не собирается. В одном проекте у меня вобще написан отдельный модуль для работы с запросами к серверу, получением данных (+обёртка в наблюдаемые) и кэшированием. Но так же можно использовать knockback, хотя это уже некоторое нагромождение.
Вы правы, можно и так, но это дополнительный объект, который может быть оправдан если полей будет несколько. Добавил в статью.
нужно сделать биндинг к редактору
Да, так можно сделать, но только в том случае, если известный textarea будет контейнером редактора, а если область для редактирования создаётся динамически, то всё равно придётся писать плагин или править шаблон в исходниках редактора.
А поисковики же научились исполнять js и индексировать ajax запросы, есть даже официальные туториалы от яндекса и гугла и много статей на хабре. Может я не знаю каких-то особенностей, но если вам это не подходит, то можно для поисковиков отдавать статическую страницу, а для браузеров нормальную. Или после загрузки страницы запрашивать json (или парсить страницу) и заменять статические данные — шаблонами, т.е. рендерить заново, но только уже нокаутом.
С задачей заполнения моделей из уже готового html не сталкивался. И насколько я знаю, декларативная модель нокаута это и не собирается поддерживать. Полагаю, что лучше получить данные с сервера и поместить их в DOM уже на клиенте. Можно пример, в каких условиях вам это понадобилось?
Вы правы, можно и так, но это дополнительный объект, который может быть оправдан если полей будет несколько. Добавил в статью.
Да, так можно сделать, но только в том случае, если известный
textarea
будет контейнером редактора, а если область для редактирования создаётся динамически, то всё равно придётся писать плагин или править шаблон в исходниках редактора.