8

我知道这个错误已经出现了几次,但我仍然不确定如何使这个工作正常..

我的魔法从这里开始:

    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} 
});

它加载了一个将其呈现list_item_options为模型视图的 CollectionView 视图。它在这个文件(ListMemberEditSelection.js)中,当我执行时this.destroy,它将返回:

Uncaught Error: A "url" property or function must be specified

所以这让我觉得模型或模型 URL 没有被定义。我只是不确定把它放在哪里,因为它与我做大致相同事情的其他部分非常相似。

有什么想法吗?我为含糊而道歉。如果你还有什么想看的,请告诉我!

我很好奇是否有可能查看此 URL 属性将在对象模型或集合本身中写入的位置。

4

3 回答 3

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

于 2012-10-16T15:32:45.180 回答
9

我有一个类似的问题,我"id":""从我的模型默认值中删除了,问题就解决了。

于 2013-11-11T11:04:54.197 回答
2

我确实收到了类似的错误试试这个:我只是在假设你的模型可能是什么样子

window.MyModel = Backbone.Model.extend({
  url: function(){
    return this.instanceUrl;
  },
  initialize: function(props){
    this.instanceUrl = props.url;
  } 
}

请查看我发布的这个问题以获取更多详细信息:https ://stackoverflow.com/a/11700275/405117

我提供此参考,因为这里的答案帮助我更好地理解

希望这可以帮助!

于 2012-10-16T15:31:14.383 回答