【发布时间】:2011-08-31 00:18:17
【问题描述】:
我正在尝试确定 Backbone.js 是否适合我当前的项目:一个可视化应用程序。
我有几个问题:
1) 状态/路由?
由于这不是典型的 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)“应呈现可视化视图”
我应该将这些函数放置在哪里?如何在模型中创建一个在状态稳定时触发的事件? (即当所有函数都被调用并且是时候设置视图状态时?)
【问题讨论】:
标签: javascript model-view-controller javascript-framework backbone.js