2

我正在使用以下命名空间方案开发一个项目:

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));
4

2 回答 2

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

于 2013-10-21T22:45:40.653 回答
0

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

于 2012-08-21T14:29:34.273 回答