在收集中出现错误.create: Uncaught Error: A "url"属性或函数必须指定
Getting error in Collection.create : Uncaught Error: A "url" property or function must be specified
我有一个模型
var TodoModel = Backbone.Model.extend({
defaults: {
title : '',
completed: false
}
});
当我试图使用Collection.create
方法将此模型添加到集合时,我得到一个错误
未捕获错误:必须指定"url"属性或函数
我尝试了以下方法
var TodoCollection = Backbone.Collection.extend({
model : TodoModel,
});
todoCollection.create({title:'Try out code examples', completed:true});
有人能帮我一下吗? 如果您正在创建一个模型/集合——默认情况下您必须为资源指定一个url。您可以这样做:
var TodoModel = Backbone.Model.extend({
defaults: {
title : '',
completed: false
}
});
var TodoCollection = Backbone.Collection.extend({
url: '/todos',
model : TodoModel,
});
参见http://backbonejs.org/#Collection-url了解更多详细信息。
我认为这里的混乱来自Backbone.js的Todo样本,它使用本地存储(http://documentcloud.github.com/backbone/docs/backbone-localstorage.html)。如果跳到本地存储代码的底部,可以看到Backbone。设置sync。通过这样做,我们改变了创建模型的默认行为,使其不再需要Url。在大多数骨干应用程序中,情况并非如此,需要一个服务器端URL才能使模型工作。
这是因为destroy()函数将调用Backbone。同步更新服务器,而不仅仅是你的模型在前端。http://backbonejs.org/Model-destroy
所以,如果你使用REST来同步你的数据,你需要在你的模型中设置一个url属性,以便Backbone知道向哪里发送请求:
Backbone.Model.extend({
url: "http://myapi.com/"
})
为了更灵活,您还可以设置urlRoot: http://backbonejs.org/#Model-urlRoot
或者你可以加上
Backbone.sync = function(method, model, success, error){
success();
}
相关文章:
- //而不是在src=“”上使用http://"属性
- Javascript复选框函数:;缺少:在属性id之后"
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- 如何提取“;href"最近列表项中的属性值
- 我如何选择/点击一个带有for=“”的元素"属性[量角器]
- Jquery scrollTop动画不工作"无法读取属性'top'无风
- "无法获取属性'的值;style'"当试图在IE中更改样式时
- 为什么我得到“;无法获取属性的值'SetReturnValue'"当使用ceebox显示YouT
- "属性描述必须是对象“”;错误
- 显示范围输入的值"无法读取属性'值'“为空”;
- "无法读取属性'id'未定义的“;解析工厂中声明的数组时
- javascript删除"被禁用”;属性
- 为什么下面抛出一个“;对象没有't支持属性或方法'importNode'"在IE11中
- JS/JQuery:动态添加"图案“;以及“;标题“;属性以形成输入
- 如何获得"src”;来自多个嵌套iframe源的属性
- "未捕获的类型错误:无法读取属性'长度'“为空”;在jQuery中
- 谷歌地图Api在CRM Dynamics 2011 iframe"不可能使用显示属性“;消息
- "Function.createDelegate"原因;错误:对象没有't支持属性或方法
- 奇怪的行为angularjs返回"类型错误:无法分配给只读属性"