gpt4 book ai didi

javascript - 主干 - 可以从模型中获取集合

转载 作者:可可西里 更新时间:2023-11-01 01:17:18 26 4
gpt4 key购买 nike

我想知道是否有办法从其中一个模型中获取对集合的引用。例如,如果下面集合中的任何人以某种方式知道属于一个集合或多个集合。 Fiddle

(function() {
window.App = {
Models: {},
Views: {},
Collections: {}
};

App.Models.Person = Backbone.Model.extend({
defaults: {
name: 'John',
phone: '555-555-5555'
}
});

App.Views.Person = Backbone.View.extend({
tagName: 'li',

template: _.template("<%= name %> -- <%= phone %>"),

render: function(){
var template = this.template( this.model.toJSON() );

this.$el.html( template );

return this;
}
});

App.Collections.People = Backbone.Collection.extend({
model: App.Models.Person
});

App.Views.People = Backbone.View.extend({
tagName: 'ul',

add: function(person){
var personView = new App.Views.Person({ model: person });

this.$el.append( personView.render().el );

return this;
},

render: function() {
this.collection.each(this.add, this);

return this;
}
});


})();

var peeps = [ { name: 'Mary' }, { name: 'David' }, { name: 'Tiffany' } ];

var people = new App.Collections.People(peeps);

var peopleView = new App.Views.People({ collection: people });

peopleView.render().$el.appendTo('body');

最佳答案

每个模型都有一个名为collection 的属性。在您的 fiddle 中,添加 console.log(people.models[0].collection) 将打印出集合。

查看源代码,看起来这是用于执行诸如调用模型的 destroy() 方法时从集合中删除模型之类的操作。

更新:参见 this updated fiddle它创建了三个人模型和两个集合。它将它们打印到控制台。看起来 model.collection 只引用了这个人被添加到的第一个集合,而不是第二个。

关于javascript - 主干 - 可以从模型中获取集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com