Модель изменения Backbone для View

Я новичок в 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) не отражает изменения модели в collection

  • (b) не запускает (изменяет) события, потому что привязка в функция инициализации представления никогда не срабатывает, потому что это совершенно новая модель

  • (c) мне кажется взломом

  • (d) каждый раз, когда я нажимаю на вкладку, создается новое представление (это проблема с производительностью?)

Какая здесь лучшая практика?

26
задан Riebel 21 December 2011 в 15:18
поделиться

1 ответ

Плагин Backbone.Marionette предоставляет оптимизированное решение для вашей проблемы.

Он обеспечивает функциональность для инициализации приложения, управления просмотром и агрегации событий.

По сути, это избавляет от боли, скрывая и демонстрируя множество взглядов.

Вы можете прочитать это сообщение в блоге , чтобы узнать больше об этом.

1
ответ дан 28 November 2019 в 17:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: