У меня возникла проблема с архитектурой приложения, разработанного в Backbone.события javascript/backbone, когда модель была изменена
У меня есть каскадные, иерархические виды, т. Е. Корневой вид имеет представления заголовка, среднего и нижнего колонтитула. Каждый из них состоит из некоторых представлений более низкого уровня, например. Представление заголовка состоит из вкладок, предпочтений и видов входа/выхода из системы. Это просто агрегация представления.
У меня также есть модель конфигурации , которая имеет несколько атрибутов, она загружается через AJAX (стандартная выборка позвоночника). Атрибуты модели отображаются в интерфейсе с помощью всплывающих окон, меню и т. Д., Чтобы пользователь мог выбрать свои настройки. Когда пользователь изменяет настройку, возможно, многие части приложения должны будут повторно отобразить. Модель конфигурации имеет «состояние» свойство (например, свойство currentPeriod
используется среди periods
которые были извлекаться с помощью AJAX)
Внутри взгляды, я использую listenTo(this.model, 'change:currentPeriod', this.render)
, чтобы сделать этот вид повторной визуализации, когда что-то изменяется в конфигурации.
Я установил все свои атрибуты состояния по умолчанию внутри модели :: parse
. Проблема в том, что если у меня есть 10 атрибутов для установки (после завершения синтаксического разбора), и, вероятно, каждый из них вызовет некоторые события, многие из них будут выполняться несколько раз (это не то, что я хочу).
Я искал возможность установить атрибуты текущего состояния внутри синтаксиса с помощью опции {silent: true} - тогда никакие события не будут запущены. Я надеюсь, что у некоторых из вас уже была такая же проблема, и существует простое решение. Заранее спасибо!
Я не уверен, в чем вопрос. Вы указываете использование '{silent: true}', когда вы вызываете 'set', чтобы предотвратить события изменений; не то, что вы хотите? – freejosh
@freejosh, no. Я могу использовать x.set ('xxx', value, {silent: true}).Но мне нужно то же самое в функции 'parse', возвращаемое значение будет' set' после того, как функция синтаксического анализа закончена. Или, если есть лучшее решение, я был бы признателен. – ducin