2013-12-23 59 views
0

我正在尝试学习backbonejs和即时通讯有奇怪的错误,我似乎不明白。
因此,我基本上有一个ChannelCollection通道,当我尝试在最后一行代码上创建ChannelsCollection时,出现错误。在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

你犯了一个错误:

VAR ChannelsCollection = new Backbone.Collection.extend({ 模式:通道 });

删除new这里。

顺便说一下,您不需要将模型传递给Collection。

我们经常将一个原始对象列表传递给一个集合。

所以,你可以使用这样的:

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

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

console.log(channels); 

因为我们有model: Channel这里的总汇,总汇知道如何处理它。

+0

thx指出了这一点,但我已经知道了。 ch1和ch2中使用的代码是另一个示例中的复制粘贴。但是,如果我没有使用模型:频道集合中,我不得不使用“新频道...” – Marcio

0

我写了一个 “新” Backbone.Collection.extend之前造成一个明显愚蠢的错误。