bho*_*hhi 3 javascript backbone.js
我的模型和集合看起来像这样.
var MyModel= Backbone.Model.Extend({
foo: function(){
alert("is not working...");
}
});
var MyCol = Backbone.Collection.extend({
models:MyModel,
url: function(){ return '/json_from_server' }, //json data mapped to MyModel
poo:function(){
alert("this works");
}
});
cols = new MyCol();
cols.fetch({
success:function () {
cols.poo(); //this works fine
cols.models.forEach(function(item){
alert(item.get("id")); //It works fine
alert(item.foo()); // this is not working...
});
}
});
Run Code Online (Sandbox Code Playgroud)
当调用item.foo()时,浏览器抛出错误:Uncaught TypeError:Object [object Object]没有方法'foo'任何人都可以帮我弄清楚这里出了什么问题.
在你的MyCol对象中,你设置models: MyModel.我认为模型不应该是复数,所以它应该是model: MyModel.
如果仍然无效,您可能需要在MyModel中使用_.bindAll,如下所示:
var MyModel= Backbone.Model.Extend({
initialize: function() {
_.bindAll(this, "foo");
},
foo: function(){
alert("is not working...");
}
});
Run Code Online (Sandbox Code Playgroud)
你的初始化不能提前工作的原因是因为如上所述,你应该将"模型"作为复数model.
| 归档时间: |
|
| 查看次数: |
4950 次 |
| 最近记录: |