Я видел там, как правило, немного путаницы, когда речь идет о нескольких моделях просмотра в knockout.jsКогда создавать новые модели просмотра в Knockout.js
документация ко не объясняет очень много, как бороться с несколькими моделями просмотра, как общаться между ними или когда они должны рассматриваться.
Я нашел this site, объясняя различные способы создания нескольких моделей представления и способы взаимодействия с ними.
Я дал ему попробовать, и я создал мастер-модель с различными подмоделями:
var MasterModel = function(){
this.orders = new ordersViewModel(),
this.dates = new datesViewModel(),
this.equipment = new equipmentViewModel();
};
После этого, я обнаружил, что приходится использовать with: nameOfModel
во многих местах (и создать дополнительные обертки или HTML-комментарии для него) или даже просто используя имя модели представления в качестве префикса data-bind="foreach: orders.getList()"
.
Кроме того, у нас есть проблема связи между ними, и хотя это может быть как-то решено, это не так просто, как при работе с одной моделью представления.
Мой вопрос: Стоит ли создавать несколько моделей? Если да, то когда? Кажется, это только добавляет больше трудностей, и я не вижу в этом преимуществ. (да, говорят, что он поддерживает модульность ... но я не вижу в этом явного преимущества)
Yay for aurelia: D –
У меня все еще нет четкого объяснения, почему вы говорите, что Aurelia или Durandal могут помочь вам лучше организовать модули. – Alvaro
@ Alvaro Я думал о системе инъекций и загрузки зависимостей Auerlia, которая более интегрирована против необходимости вносить разные части (KO, RequireJs и т. Д.). У обоих есть преимущества, и писать хороший модульный код - это ответственность разработчика, но иногда фреймворки могут облегчить ситуацию. Примеры Aurelia также, по-видимому, являются хорошим руководством, хотя я пока что снял поверхность Aurelia. – Aligned