Backbone.js &引用;未捕获类型错误:未定义不是函数;初始化主干集合
我有一个类似以下内容的主干集合:Backbone.js &引用;未捕获类型错误:未定义不是函数;初始化主干集合,backbone.js,Backbone.js,我有一个类似以下内容的主干集合: var FooCollection = Backbone.Collection.extend({ model:Foo, initialize: function (attributes, options) { this.barId = options.barId; } }); var Foo = Backbone.Model.extend({}); 当我尝试初始化它时,我在主干.Collection的\u prepa
var FooCollection = Backbone.Collection.extend({
model:Foo,
initialize: function (attributes, options) {
this.barId = options.barId;
}
});
var Foo = Backbone.Model.extend({});
当我尝试初始化它时,我在主干.Collection
的\u prepareModel()
函数中得到了“Uncaught TypeError:undefined不是函数”
错误呼叫位于model=new this.model(属性、选项)
中
//准备要添加到此集合的属性的模型或散列。
_prepareModel:函数(模型、选项){
选项| |(选项={});
如果(!(模型的模型实例){
var attrs=模型;
options.collection=this;
model=new this.model(attrs,options);//在我的实际代码中,Foo
是在FooCollection
之后声明的。我没有意识到Javascript不支持转发声明。[headdesk]我遇到了同样的问题。我的问题是我在收集脚本之后加入了我的模型脚本:
<script src="scripts/collections/Classes.js"></script>
<script src="scripts/models/Class.js"></script>
要修复它,我只需将Class.js移到Class.js上方:
<script src="scripts/models/Class.js"></script>
<script src="scripts/collections/Classes.js"></script>
干杯请记住,var a=6;
是两件事合一:var a;
和a=6;
。var
声明将被提升到相关范围的顶部,但分配不会被提升。我已经更新了代码示例以反映。
<script src="scripts/models/Class.js"></script>
<script src="scripts/collections/Classes.js"></script>