Javascript Backbone.js嵌套视图,概述
我希望了解您关于如何在backbone.js中使用嵌套模型和视图的一般想法 假设您有一组对话框,每个对话框都有一组选项卡。特定选项卡可能在多个对话框中重复使用。每个选项卡都非常不同,您可能希望动态地将新选项卡添加到对话框中 在我看来,每个选项卡都有不同的视图是合乎逻辑的。此外,该对话框应该是一个视图。我只是有点不清楚模型和视图是如何组合在一起的 这是我的主要问题: 如果父视图想要呈现子视图,它可能需要实际执行以下操作:Javascript Backbone.js嵌套视图,概述,javascript,backbone.js,Javascript,Backbone.js,我希望了解您关于如何在backbone.js中使用嵌套模型和视图的一般想法 假设您有一组对话框,每个对话框都有一组选项卡。特定选项卡可能在多个对话框中重复使用。每个选项卡都非常不同,您可能希望动态地将新选项卡添加到对话框中 在我看来,每个选项卡都有不同的视图是合乎逻辑的。此外,该对话框应该是一个视图。我只是有点不清楚模型和视图是如何组合在一起的 这是我的主要问题: 如果父视图想要呈现子视图,它可能需要实际执行以下操作: var childView = new ChildView(); 然后,使
var childView = new ChildView();
然后,使用jQuery
this.$("#listOfChildViews").append(childView.el);
为了确保在添加之前清除列表,我们需要
this.$("#listOfChildViews").html("");
这是最好的方法吗?对我来说似乎有点糟糕,因为我撕掉了整个列表,然后创建了所有新对象,并将它们一次添加到其中。如果没有一个“render”函数本身,而是一个“renderInitially”然后简单地“add”(用于添加新的子视图),那么可能会更好
对不起,这不太连贯 尼克
我认为你应该加入骨干模型的力量
有一个对话框模型(或者一个TabContainer,因为对话框听起来更像一个视图概念)。每个对话框都有一组选项卡(选项卡同样来自视图范围)
在初始渲染中,在DialogView中,将显示整个dialog.tabs集合,每个集合都在选项卡视图中
然后,在DialogView中,您可以监听对话框模型(添加、删除、重置)选项卡集合中的事件,并仅添加/删除与已更改元素对应的视图
您必须自己创建添加/删除视图的函数。add函数将为添加的选项卡创建和呈现一个视图,并将其添加到此。$(“#listOfChildViews”)
希望有帮助 谢谢你的回复,迪拉!我喜欢你的想法。还有几个更具体的问题。。。因为DialogView有一个对话框模型,而对话框模型有这个选项卡集合,对话框模型不会引用视图吗?这对我来说似乎很好,但这可以吗?换句话说,引用是:DialogView>DialogModel>TabCollection>TabView>TabModel——这种类型的设计可以吗,还是我缺少了一些大问题?引用是:DialogModel->TabsCollection->TabModel。DialogView->DialogModel。选项卡视图->选项卡模型。关于模型的视图,模型不知道视图。或者,您可以使用DialogView->TabsCollection、TabView->TabModel。您应该找到TabModel的其他名称,这些名称并非来自此信息的显示方式,而是更多地来自它包含的信息类型。不要忘记取消绑定所有嵌套视图。