В настоящее время я работаю над решением ASP.NET MVC и недавно представил как нокаут (MVVM JS-библиотеку), так и Wijmo (набор виджетов jQuery UI).
С введением Knockout мне также необходимо иметь модели на стороне клиента, поэтому для этой цели я сериализую С# ViewModel и привязываю ее к представлению с помощью data-model="@Model.ToJson()"
. Это позволяет мне получить модель от JS и применить к любой стороне клиентскую любовь.
Однако для нокаута все должно быть наблюдаемым, поэтому мне нужно объявить отдельную ViewModel на стороне клиента и отобразить все из объекта модели данных. Это очень похоже на дублирование усилий, и я хотел бы как-то избежать этого.
Я надеюсь, что у кого-то есть инструмент или техника для совместного использования, что позволит мне отображать нокаут ViewModel непосредственно с сервера. Возможное решение может включать:
- Пользовательская сериализация JSON для визуализации наблюдаемой модели представления непосредственно на выходе в атрибуте модели данных.
- Автоматическое преобразование на стороне клиента (я слышал о ko-autobind, но не уверен, что это будет рекомендуемый путь для принятия или насколько он стабилен/завершен)
- Что-то я не думал о
Я хотел бы, чтобы решение было общим и автоматическим, так как мой текущий подход по набору видимых моделей просмотра на стороне клиента является слишком непродуктивным, чтобы быть жизнеспособным.
Как вы решаете эту проблему?