【问题标题】:Uncaught Error: A "url" property or function must be specified for a CollectionView未捕获的错误:必须为 CollectionView 指定“url”属性或函数
【发布时间】:2012-10-16 15:11:36
【问题描述】:

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

我的魔法从这里开始:

    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 没有被定义..我只是不确定把它放在哪里,因为它的工作方式与我做大致相同事情的其他部分非常相似..

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

我很好奇是否有可能看到 在哪里这个 URL 属性将被写入对象模型或集合本身。

【问题讨论】:

    标签: backbone.js


    【解决方案1】:

    这是因为destroy() 函数也会调用Backbone.sync 来更新服务器,而不仅仅是前端的模型。 http://backbonejs.org/#Model-destroy

    因此,如果您使用 REST 同步数据,则需要在模型中设置 url 属性,以便 Backbone 知道将请求发送到哪里:

    Backbone.Model.extend({
        url: "http://myapi.com/"
    })
    

    为了提供更大的灵活性,您还可以设置一个 urlRoot:http://backbonejs.org/#Model-urlRoot

    【讨论】:

    • Hmmm .. 它似乎在其他地方没有这个 url 像你描述的那样在模型中实例化。在工作方面,如果我这样做$.bar.model.collection.url,我可以找到一个写出的 URL.. 所以问题是.. 如果集合 URL 没有像你建议的那样在模型中完成,那么它在哪里实例化..
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2014-12-11
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多