2013-12-23 3 views
0

Я пытаюсь изучить backbonejs и im, имеющие странную ошибку, которую я, похоже, не понимаю.
Итак, у меня есть канал с ChannelCollection, когда я пытаюсь создать ChannelCollection на последней строке кода, я получаю сообщение об ошибке.Ошибка при создании коллекции в backbonejs

var Channel = Backbone.Model.extend({ 
    defaults: { 
     id: -1, 
     name: 'No Name' 
    } 
}); 

var ChannelsCollection = new Backbone.Collection.extend({ 
    model: Channel 
}); 

ch1 = new Channel({ 
    name: 'Channel 1', 
    id: '1' 
}); 

ch2 = new Channel({ 
    name: 'Channel 2', 
    id: '2' 
}); 

var channels = new ChannelsCollection([ch1, ch2]); 

http://jsfiddle.net/8U9Lv/

+0

Ошибка копирования патча происходит, и иногда бывает трудно увидеть некоторые вещи, когда вы сами написали код, и когда материал вам не нравится. – Marcio

ответ

1

Вы совершили ошибку:

вар ChannelsCollection = new Backbone.Collection.extend ({ модель: Канал });

Снимите new здесь.

Кстати, вам не нужно передавать Модели в коллекцию.

Мы часто передаем список необработанного объекта в коллекцию.

Таким образом, вы могли бы использовать его как это:

ch1 = { 
    name: 'Channel 1', 
    id: '1' 
}; 
ch2 = { 
    name: 'Channel 2', 
    id: '2' 
}; 

var channels = new ChannelsCollection([ch1, ch2]); 

console.log(channels); 

Потому что мы имеем здесь model: Channel его Colletion, Colletion знает, как справиться с этим.

+0

thx для указания этого, но я уже знал это. Код, используемый в ch1 и ch2, был копией пасты из другого примера. Но если бы я не использовал модель: Channel в коллекции, мне пришлось бы использовать «новый канал ...» – Marcio

0

я написал "новый" перед Backbone.Collection.extend что вызвало очевидную глупую ошибку.

Смежные вопросы