gpt4 book ai didi

javascript - "this.collection.each is not a function"。每个都不应该是 't it simply say "”?

转载 作者:行者123 更新时间:2023-11-29 17:15:33 25 4
gpt4 key购买 nike

我真的有一个分为两部分的问题。

控制台告诉我:“TypeError:this.collection.each 不是函数”

在短期内,我很想知道为什么我的代码无法正常工作。

从长远来看,我更想知道为什么它不告诉我“每个”不是一个函数,因为这是我试图调用的方法。

附言我已确认 JQuery 加载正确,并且在此代码加载之前,所以这不是问题。

相关的 javascript 是:

$(function(){

var items = [
{ name: 'Abe Lincoln', details: 'Is he that guy from that new reality show?'},
{ name: 'Captain Planet', details: 'He is our hero'},
{ name: 'Karthus', details: 'Press R'},
{ name: 'Your Mom', details: 'She misses me'},
{ name: 'Teddy Roosevelt', details: 'Makes the most interesting man in the world look boring'}
];

var itemsCollectionView = new ListView({collection: items});
Backbone.history.start();
});

var ListView = Backbone.View.extend({

el: '#the-list',

initialize: function(){
this.render();
},

render: function(){
this.collection.each(function(model){
this.addOne(model);
}, this);
},

//create an itemview for a model, and add it to the list view
addOne:function(model){
var itemView = new ItemView({model: model});
this.$el.append(itemView.render().el);
}
});

最佳答案

this.collection.each 可以与 Backbone 一起使用,问题是您没有将实际的 Backbone 集合传递给 ItemView 的实例,而只是传递一个数组。您需要类似以下内容:

var itemsCollection = new ItemsCollection(items), // substitute your collection variable
itemsCollectionView = new ListView({ collection: itemsCollection });

此外,我尝试在 Backbone 1.0.0 和 jQuery 1.10.1 上运行您的代码,我得到了

   TypeError: Object [object Array] has no method 'each'

关于javascript - "this.collection.each is not a function"。每个都不应该是 't it simply say "”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18425674/

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