我知道这个错误已经出现过几次,但我仍然不确定如何正确地进行这项工作..
我的魔力从这里开始:
var list_edit_member_view = new app.views.ListMemberEdit({
el: $("#enterprise_member_list_edit_container"),
list_ids: list_ids
});
list_edit_member_view.render();
这会加载此视图( ListMemberEdit.js ),它在render()中有这个:
this.list_edit_member_view = new app.views.CollectionView({
el: $("#enterprise_member_list_edit_container"),
collection: app.peers,
list_item: app.views.ListMemberEditSelection,
list_item_options: {list_ids: this.options.list_ids}
});
加载一个CollectionView视图,将其list_item_options
呈现为模型视图。它位于此文件(ListMemberEditSelection.js
)内,当我执行this.destroy
时,它将返回:
Uncaught Error: A "url" property or function must be specified
所以这让我觉得模型或模型URL没有被定义..我只是不确定在哪里放这个,因为它的工作方式非常类似于我的其他部分做大致相同的事情.. < / p>
有什么想法?我为模糊道歉。如果您还有其他想要了解的内容,请与我们联系!
我很好奇是否可以在对象模型或集合本身中看到 这个URL属性。
答案 0 :(得分:16)
这是因为destroy()
函数也会调用Backbone.sync
来更新服务器,而不仅仅是前端的模型。 http://backbonejs.org/#Model-destroy
因此,如果您使用REST来同步数据,则需要在模型中设置url属性,以便Backbone知道发送请求的位置:
Backbone.Model.extend({
url: "http://myapi.com/"
})
为了更灵活,您还可以设置urlRoot:http://backbonejs.org/#Model-urlRoot
答案 1 :(得分:9)
我遇到了类似问题,我从模型默认值中删除了"id":""
,问题解决了。
答案 2 :(得分:2)
我确实收到了类似的错误 试试这个:我只是假设你的模型看起来像什么
window.MyModel = Backbone.Model.extend({
url: function(){
return this.instanceUrl;
},
initialize: function(props){
this.instanceUrl = props.url;
}
}
请查看我自己发布的这个问题,了解更多详情:https://stackoverflow.com/a/11700275/405117
我提供此参考,因为这里的答案帮助我更好地理解
希望这有帮助!