Backbone.js:Uncaught TypeError:Object [object Array]没有方法'set'

时间:2013-09-07 09:41:40

标签: javascript backbone.js

我遇到了错误,我试图在我的一个视图集合中使用reset方法。

这是它的实现

收藏品:

window.Cards = Backbone.Collection.extend({
    model: Card,
    url: "/cards"
});

路由器文件:

var cardsList = new Cards();
cardsList.fetch({success: function(){
    filteredCards = cardsList.where({Class: "ABC"}).concat(cardsList.where({Class: "ZYX"}));
    this.deckbuild = new Deckbuilder({collection:filteredCards});
}});

在我的Deckbuilder视图文件中,我使用相同的集合在其中创建了另一个视图:

var cardselectView = new CardSelect({collection: this.collection});

然后在CardSelect视图文件中我写道:

blahblah = new Collection();
this.collection.set(blahblah);

然后出现错误。我的实施有什么不对吗?我违反了一些抽象吗?我不能再在我的集合对象上使用任何Backbone的集合方法了。

1 个答案:

答案 0 :(得分:1)

在路由器文件中,传递给Deckbuilder视图的集合是一个数组而不是Backbone.Collection。尝试进行以下更改:

this.deckbuild = new Deckbuilder({collection: new Cards(filteredCards)});