Я пытаюсь выяснить, является ли Backbone.js подходящей платформой для моего текущего проекта: приложение для визуализации.
У меня есть ряд вопросов:
1) State / Routing?
Поскольку это не ваше типичное приложение RESTful, а скорее приложение визуализации с различными типами диаграмм и настройками для этих диаграмм, как мне поддерживать состояние в URL?Допустим, моя модель areaChart имеет ряд значений по умолчанию, таких как:
AreaChartModel = Backbone.Model.extend({
defaults: {
selectedCountries: [],
year: 1970,
stacked: false
},
initialize: function(){
[...]
}
});
При обновлении модели я хотел бы сериализовать некоторые из этих атрибутов, чтобы я мог добавить в закладки определенное состояние: chartApp.html#! year = 1970 & stacked = false и т. д.
И наоборот, когда я запускаю приложение с этим состоянием, как мне "отделить" состояние url и установить модель?Могу ли я использовать встроенную маршрутизацию Backbone?
2) Контроллер и связь?
Кажется, что у Backbone довольно тесная связь модели представления?Действительно ли так я должен связать, например, свой areaChartView с моделью?
AreaChartView = Backbone.View.extend({
initialize: function(){
areaChartModel.bind("change:year", this.render);
}
});
Разве это обычно не роль контроллера?
3) Продолжение: Модель противКонтроллер?
При таком сценарии:
Изменение в «Боковой панели» должно вызвать последовательность функций:
1) «Новые данные для текущеговыбор должен быть загружен "
2)" На основании этих данных необходимо обновить шкалы в представлении визуализации "
3)" Представление визуализации должно быть визуализировано "
Где я должен разместить этифункции и как я могу создать событие в модели, которое я запускаю, когда состояние стабильно?(т.е. когда все функции были вызваны и пришло время устанавливать состояния просмотра?)