Backbone.js Collection fetch()抛出未捕获类型错误:无法读取属性'idAttribu
Backbone.js Collection fetch() throws Uncaught TypeError: Cannot read property 'idAttribute' of undefined
我正在努力学习Backbone.js
它使它能够获取、放置和删除单个模型。但是,当我创建集合时,fetch方法会给出以下错误:未捕获的类型错误:无法读取未定义(主干.js:683)的属性"idAttribute"
这是我正在尝试的代码:
Person = Backbone.Model.extend({
urlRoot: '/people'
});
PersonList = Backbone.Collection.extend({
model: 'Person',
url: '/people'
});
var personList = new PersonList();
personList.fetch();
在获取时,服务器返回以下JSON,我认为这是正确的:
[{"id":1,"name":"Matt","description":"Worker"},{"id":3,"name":"Test","description":"Test person"}]
我使用的是jQuery 2.0.3(也尝试过1.10.2)、Undercore.js 1.5.2和Backbone.js 1.1.0
我做错了什么?
当扩展Backbone.Collection
时,model
应该是对构造函数的引用,而不是字符串。因此,您需要删除Person
中的引号。
PersonList = Backbone.Collection.extend({
model: Person,
url: '/people'
});
这是Collection模型的文档。
除了@fbynite答案。
您还需要确保所引用的对象是有效的主干模型(从Backbone.Model
扩展而来的对象)。
因此,在调用model/collection/view的js文件时,请确保模型文件的调用时间早于集合文件。
在我的示例中,我已经花了数小时进行了调查,我的问题是在模型之前启动集合,所以我建议不要使用的行:App.AppModel = App.AppModel || {};
。它不那么"安全",但最好让代码崩溃,这样你就能看到哪里出了问题。
window.App = window.App || {};
App.AppModel = App.AppModel || {}; //DO not use this line!!
App.AppCollection = Backbone.Collection.extend({
model: App.AppModel,
});
相关文章:
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 看到“;未捕获的类型错误:无法读取属性'weight'未定义的“;尽管按照字面上的指示
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- 未捕获的类型错误:无法读取属性'addEventListener'的null chrome扩展名
- 未捕获的类型错误:无法读取属性'状态'在react中为null
- 未捕获的类型错误:无法读取属性'中止'的未定义
- Javascript未捕获类型错误:无法读取属性'0'的未定义
- jQuery控制台错误:无法读取属性'top'的未定义
- 未捕获的类型错误: 无法读取未定义的属性“图像”
- 我该如何解决这个问题?“未捕获的类型错误:无法读取 null 的属性'appendChild'”
- json-api和错误结果:无法读取属性'长度'的未定义
- VM5111:1249未捕获类型错误:无法读取属性'x'为null
- 未捕获的类型错误:无法读取属性'道具'reactJS中未定义的
- 类型错误:无法读取未定义的属性“toString” - 为什么
- 未捕获的语法错误:读取JSON文件时出现意外的标记
- if, else if, and else"我的代码条件被错误读取
- 401未经授权的错误读取Azure移动服务表作为认证的用户(Javascript)
- node.js错误:读取ECONNRESET