Car*_*son 3 javascript backbone.js
我有一个简单的Backbone集合,它从(远程)资源中提取对象列表.Collection.fetch但是,调用失败并出现此错误:
Object [object Object] has no method '_validate'
Run Code Online (Sandbox Code Playgroud)
当集合尝试在添加时为每个JSON对象创建模型实例时,我猜这种情况正在发生.谁能解释为什么会发生这种情况?
这是我正在使用的代码.非常裸露的骨头......
/* Models */
var SomeModel = Backbone.View.extend({});
/* Collections */
var SomeCollection = Backbone.Collection.extend({
url: 'http://localhost:8000/api/some/resource/?format=json',
model: SomeModel,
parse: function(data) {
return data.objects
}
});
var SomeView = Backbone.View.extend({
collection: new SomeCollection(),
initialize: function() {
this.collection.fetch();
},
});
Run Code Online (Sandbox Code Playgroud)
以下是资源响应的示例:
{
"meta": {
"count": 100
},
"objects": {
{"title": "Title", "id": 1},
{"title": "Title 2", "id": 2}
}
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*ons 15
您可能没有将集合的model选项设置为有效的Backbone.Model子类.当集合获取数据时,它将实例化模型并调用set,这将调用_validate有效的Backbone.Model子类将具有的,但实例不会.有关详细信息,请参阅Backbone.Collection.fetch的带注释的源代码.
感谢您发布代码.这是问题所在.你的SomeModel延伸View而不是Model.我的猜测是复制/粘贴/忘记编辑.
var SomeModel = Backbone.View.extend({});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4428 次 |
| 最近记录: |