dan*_*ani 5 javascript model-view-controller javascript-framework backbone.js
我正在试图弄清楚Backbone.js是否是我当前项目的正确框架:可视化应用程序.
我有很多问题:
1)状态/路由?
由于这不是典型的RESTful应用程序,而是具有各种图表类型和这些图表设置的可视化应用程序,如何在URL中维护状态?假设我的areaChart模型有许多默认值,如下所示:
AreaChartModel = Backbone.Model.extend({
defaults: {
selectedCountries: [],
year: 1970,
stacked: false
},
initialize: function(){
[...]
}
});
Run Code Online (Sandbox Code Playgroud)
在对模型的更新中,我想序列化其中一些属性,以便我可以为特定状态添加书签:chartApp.html#!year = 1970&stacked = false等.
反之亦然,当以这种状态启动应用程序时,我如何"取消"url状态并设置模型?我可以使用Backbone的内在路由吗?
2)控制器和耦合?
看来Backbone有一个非常紧凑的视图模型耦合?这真的是我应该将我的areaChartView绑定到模型吗?
AreaChartView = Backbone.View.extend({
initialize: function(){
areaChartModel.bind("change:year", this.render);
}
});
Run Code Online (Sandbox Code Playgroud)
这通常不是控制器的作用吗?
3)延续:模型与控制器?
鉴于这种情况:
"侧栏"中的更改应触发一系列功能:
1)"应加载当前选择的新数据"
2)"基于此数据,应更新"可视化"视图中的比例"
3)"可视化视图应该呈现"
我应该在哪里放置这些函数,如何在状态稳定时触发的模型中创建事件?(即,当调用了所有函数并且是时候设置视图状态了吗?)
1)我会尽可能使用 Backbone.js 原生路由 \xe2\x80\x9c:params\xe2\x80\x9d 和 \xe2\x80\x9c*splats\xe2\x80\x9d ,阅读更多。您可以将所有查询放入 Backbone.js 路由中,但我个人会牺牲某些东西来支持直观的 UI 按钮
\n\n例如,我将默认设置为折线图,您无法使用 URL 来预设它,但只需单击按钮即可更改为堆叠图。
\n\n我可能会不再使用 ? 和 & 在我的网址中。我可能稍后会回到这一点,因为它很有趣。
\n\n2)你的例子很好,你只需要记住 Backbone.js MVC 术语与传统 MVC 无关。
\n\nBackbone 视图本质上是传统 MVC 中的控制器。\n Backbone 控制器只是框架内的一种路由方式。\n 用于 Backbone.js 的模板引擎是传统的 MVC 视图。
\n\n3)还在写
\n 归档时间: |
|
查看次数: |
2028 次 |
最近记录: |