我正在使用Backbone-nested
插件,将Models
声明为Backbone.NestedModel.extend()
:https://github.com/afeld/backbone-nested
这允许我检索数据:this.model.get('tasks.title')
我遇到的问题是呈现每个嵌套项目。我可以使用this.model.get('tasks[0].title')
输出1。
但是,如果我编写一个循环来迭代每个嵌套,则在return this;
方法之后调用render()
时$el
将附加回{{1}它失败了。
问题
如何编写有效的方法让嵌套元素呈现给集合视图?
收藏视图
Collection $el
数据(项目)
App.Views.Tasks = Backbone.View.extend({
el: '#taskList',
initialize: function() {
Event.on('tasks:show', this.show, this);
this.collection.on('add', this.addOne, this);
},
render: function() {
this.collection.each(this.addOne, this);
return this;
},
addOne: function(project) {
console.log(project.toJSON());
var taskView = new App.Views.Task({ model: project });
this.$el.append(taskView.render().el);
},
show: function(id) {
var project = this.collection.get(id);
var taskView = new App.Views.Task({ model: project });
this.$el.html(taskView.render().el);
}
});
答案 0 :(得分:0)
我似乎多次遇到过关于显示嵌套布局的问题。
有一个位于Backbone.js之上的JavaScript库,可以减少您必须编写的样板代码量,并且它们具有最适合嵌套集合的CompositeView。我已经包含了文档和讨论使用它的文章。
Marionette CompositeView documentation
Marionette CompositeView Article
A similar question that I answered earlier
希望这有帮助。