必须在Backbone.js中指定'url'属性或函数错误

Ser*_*rov 28 html javascript jquery backbone.js

我正在尝试制作一个小应用程序来了解Backbone如何工作.我从名为Todo的来源获取了示例应用程序.我使用Todo应用程序的片段从头开始创建我的应用程序.我认为这些应用程序看起来非常相似,但由于某些原因,我无法在示例应用程序中使用一些正常工作的东西.我收到一个错误:

A 'url' property or function must be specified
Run Code Online (Sandbox Code Playgroud)

另一个问题是我无法从示例工作中创建此代码:

this.model.bind('change', this.render);
Run Code Online (Sandbox Code Playgroud)

它说没有绑定这样的功能.我检查了所有的库版本和代码,无法实现我的错误.我该怎么办?

Jul*_*ien 37

TODO示例依赖于localStorage,因此它没有定义url(因为它是本地的).但是,当您使用默认的Backbone.sync实现时,您需要在集合和模型上定义url属性(它可以是静态或函数).不这样做会导致你得到的错误.

至于this.model.bind,我猜你以某种方式丢失了对模型的引用.两件事:不是你的想法,或者没有定义this.model.发布更多代码以获得完整答案.

  • 这个答案是针对主干0.3.x,该项目自去年以来发展... (4认同)
  • 这与主干文档相矛盾:"生成表单的URL:"/ [collection.url]/[id]",如果模型不是集合的一部分,则回退到"/ [urlRoot]/id". (2认同)