2013-09-07 2 views
0

Я столкнулся с ошибкой, которую я попытался использовать методом сброса в одной из коллекции моего представления.Backbone.js: Uncaught TypeError: Object [object Array] не имеет метода 'set'

Вот его реализация

Коллекция:

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

'where',' findWhere' и куча методов возврата массива не экземпляр 'Backbone.Collection' Пожалуйста, см' Backbone' документ ... http://backbonejs.org/ – j03w

ответ

1

В файле роутера коллекция, переданная в вид Deckbuilder, представляет собой массив, а не Backbone.Collection. Попробуйте сделать ниже изменения:

this.deckbuild = new Deckbuilder({collection: new Cards(filteredCards)}); 
Смежные вопросы