Rie*_*bel 26 javascript model-view-controller model view backbone.js
我对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)
})
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是
(a)不反映集合中模型的变化
(b)不触发(改变)事件,因为视图的初始化函数中的绑定永远不会触发,因为它是一个完全新的模型
(c)对我来说似乎是个黑客
(d)每次我点击选项卡时都会创建一个新视图(这是性能问题吗?)
这里最好的实践是什么?
zsi*_*tro 15
你的解决方案之一就好了:D
这是你想要的:
this.view.community.model.set(communities.get(id).toJSON());
Run Code Online (Sandbox Code Playgroud)
这也将触发model.on("更改").
| 归档时间: |
|
| 查看次数: |
17993 次 |
| 最近记录: |