Nic*_*ang 4 javascript backbone.js
我希望得到关于如何使用backbone.js嵌套模型和视图的一般想法.
假设你有一堆对话框,每个对话框都有一堆标签.特定选项卡可能会在多个对话框中重复使用.每个选项卡都非常不同,您可能希望动态地向对话框添加新选项卡.
对每个选项卡都有不同的视图对我来说似乎合乎逻辑.此外,对话框应该是一个视图.我有点不清楚模型和视图如何组合在一起.
这是我的主要问题:
如果父视图想要呈现子视图,则可能需要实际执行以下操作:
var childView = new ChildView();
Run Code Online (Sandbox Code Playgroud)
然后,使用jQuery
this.$("#listOfChildViews").append(childView.el);
Run Code Online (Sandbox Code Playgroud)
为确保在添加之前清除列表,我们需要
this.$("#listOfChildViews").html("");
Run Code Online (Sandbox Code Playgroud)
这是首选方式吗?对我来说似乎有点不好,因为它会删除整个列表,然后创建所有新对象并立即将它们添加到其中.如果没有"渲染"功能本身可能会更好,而是'renderInitially',然后简单地'添加'(用于添加新的子视图).
对不起,这不太一致!
缺口,
我认为你应该投入Backbone Models的强大功能.
有一个Dialog模型(或者可能是TabContainer,因为Dialog听起来更像是一个视图概念).每个对话框都有一个Tabs集合(tab再次来自视图Universe).
在初始渲染中,在DialogView中,您将显示整个dialog.tabs集合,每个集合都在TabView中.
然后,在DialogView中,您可以侦听对话框模型的选项卡集合中的事件(添加,删除,重置),并仅添加/删除与更改的元素对应的视图.
您必须自己创建添加/删除视图的功能.add函数将为添加的选项卡创建并呈现视图,并将其添加到此.$("#listOfChildViews").
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |