我正在使用以下命名空间方案处理项目:
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));
答案 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的第一个参数是一个模型数组,然后是一个选项哈希值。您是否尝试传入一组模型,如果没有,则传入空数组:[]