深度嵌套的backbone.js对象会导致错误吗?

时间:2012-08-21 14:24:13

标签: javascript backbone.js

我正在使用以下命名空间方案处理项目:

var abc = {};
abc.models = {};
abc.views = {};

abc.models.Collection = Backbone.Collection.extend({});

当我寻求创建新集合时,我收到以下错误

var collection = new abc.models.Collection({this:"that"});
TypeError: Object #<Object> has no method '_reset'

当我将构造函数移动到abc.Collection时,错误停止,所有内容都根据需要开始工作。

有人可以帮我理解为什么会这样吗?

我还应该补充一点,这是多文件应用程序的一部分,其中每个文件都包含以下内容:

(function($, abc){

//module contents here

}(jQuery, abc));

2 个答案:

答案 0 :(得分:3)

这有效:

var abc = {};
abc.models = {};
abc.views = {};
abc.models.Collection = Backbone.Collection.extend({});
var collection = new abc.models.Collection([], {});

然而这次旅行是Uncaught TypeError: Object #<Object> has no method '_reset'

var abc = {};
abc.models = {};
abc.views = {};
abc.models.Collection = Backbone.Collection.extend({});
var collection = abc.models.Collection([], {});

不同之处在于没有使用new调用构造函数。

答案 1 :(得分:0)

新的Backbone Collection的第一个参数是一个模型数组,然后是一个选项哈希值。您是否尝试传入一组模型,如果没有,则传入空数组:[]