Я новичок в Backbone и задаю следующий вопрос:
У меня есть набор моделей.
У меня есть отображение в виде коллекции, отображающее вкладки (с представлением каждой модели в коллекции).
У меня есть представление о модели (для содержимого).
У меня есть маршрутизатор с маршрутами.
То, что я пытаюсь достичь, - это функциональность вроде http://jqueryui.com/demos/tabs/
Я нажимаю на вкладку (модель коллекции), а затем хочу передать модель в представление содержимого, возможно, изменить ее и отразить изменения в коллекции.
Я придумал четыре решения:
В маршрутизаторе:
'switchCommunity': function(id) {
// (a) set new model attributes
this.view.community.model.set(communities.get(id));
// (b) replace model
this.view.community.model = communities.get(id);
// (c) a custom function of the view changes its model
this.view.community.changeModel(communities.get(id));
// (d) a new view
this.view.community = new View({
model: communities.get(id)
})
}
Проблема здесь
-
(a) не отражает изменения модели в Коллекция
-
(b) не вызывает события (изменения), поскольку привязка в инициализация функции представления никогда не запускается, поскольку она полностью новая модель
-
(c) кажется мне взломом
-
(d) каждый раз, когда я нажимаю на вкладку, создается новое представление (это проблема с производительностью?)
Какая здесь самая лучшая оценка?