我是 Backbone 的新手,我还没有完全理解它,而且我遇到了一种我找不到任何文档的情况。如果我有一个包含多个视图的视图怎么办?例如,我有一个名为StackView
. 此视图的目的是整齐地布置一组卡片。它管理在堆栈中添加、移除和调整卡片的动画。每张卡都是一个CardView
。我将如何处理?我见过人们通过简单地在视图中创建一个变量并将 View 实例分配给该变量来谈论视图中的视图。我应该只是CardView
在 a 的变量中添加一个 s数组StackView
吗?
问问题
1307 次
1 回答
1
这就是我所做的,而且效果很好。这是我在应用程序中使用的视图片段。我已经从我的咖啡脚本将它重新写回了常规的 javascript,所以我对任何错别字表示歉意:
render: function() {
var _this = this;
this.$el.html(this.template());
this.listItemViews = [];
// for each model in the collection, create a new sub-view and add
// it to the parent view
this.collection.each(function(model){
var view = new App.Views.Projects.ListItem({model:model}); // create the new sub-view
_this.listItemViews.push(view); // add it to the array
_this.$('#project-table tbody').append(view.render().$el); // append its rendered element to the parent view's DOM
});
return this;
}
这让我的表视图保持对所有视图的引用listItemView
。
当然,如果你这样做,你应该确保正确移除这些子视图,并在移除父视图时取消绑定任何事件。
于 2012-06-26T18:30:35.800 回答