- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个简单的 Backbone 集合,它从(远程)资源中提取对象列表。但是,调用 Collection.fetch
失败并出现此错误:
Object [object Object] has no method '_validate'
我猜这是在集合试图在添加时为每个 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();
},
});
这是资源响应的示例:
{
"meta": {
"count": 100
},
"objects": {
{"title": "Title", "id": 1},
{"title": "Title 2", "id": 2}
}
}
最佳答案
您可能没有将集合的 model
选项设置为有效的 Backbone.Model 子类。当集合获取数据时,它将实例化模型并调用 set
,这将调用 _validate
,这是一个有效的 Backbone.Model
子类,但您的实例没有。参见 the annotated source code for Backbone.Collection.fetch了解详情。
感谢您发布代码。这就是问题所在。您的 SomeModel
扩展了 View
而不是 Model
。我的猜测是复制/粘贴/忘记编辑。
var SomeModel = Backbone.View.extend({});
关于javascript - Backbone.Collection.fetch 抛出 "Object [...] has no method ' _validate'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666989/
我正在尝试使用 _validate API,它拒绝作为无效查询,其中提交的确切正文在发送到 _search API 时有效。 _validate 请求正文是否需要以某种方式有所不同? 对于“解释”结果
我有一个简单的 Backbone 集合,它从(远程)资源中提取对象列表。但是,调用 Collection.fetch 失败并出现此错误: Object [object Object] has no m
我尝试向属性添加列表,但是当我尝试保存数据库时,它引发了以下异常。我的代码有问题吗?我之前修改了模型以添加新属性saved_jadwal_ids。我认为这不会造成任何问题,因为我在执行 jadwal.
我是一名优秀的程序员,十分优秀!