我正在尝试创建一个新模型并将其保存在服务器上。我的问题是,当我执行model.save(obj)
时,会抛出错误A "url" property or function must be specified
。
我已经在集合中指定了一个网址,我希望使用它。
我的代码:
class TestModel extends Backbone.Model
initialize: ->
return;
module.exports = TestModel
class TestCollection extends Backbone.Collection
model: TestModel
url: '/models'
parse :(response) ->
return response.data
addModel : (data)->
newModel = new TestModel(data)
newModel.save()
@add(newModel)
module.exports = new TestCollection()
我正在调用像这样的addModel函数
Tests = require 'path/to/test collection'
Tests.addModel(data)
这会引发错误A "url" property or function must be specified
如果我将addModel函数修改为以下内容,则可以正常工作! :
addModel : (data)->
newModel = new TestModel(data)
@add(newModel)
newModel.save()
我做错了什么?我想在save()
之后将模型添加到集合中答案 0 :(得分:2)
您收到A "url" property or function must be specified
错误,因为它在line
您的上一个代码有效,因为添加到集合中的模型引用了model.collection
,因此在这种情况下save
方法可以resolve url。要使您的初始代码正常工作,您应该为您的模型提供urlRoot
,如下所示:
class TestModel extends Backbone.Model
urlRoot: '/models'
initialize: ->
return;
module.exports = TestModel
如果您正在使用集合外部的模型,请指定urlRoot,以启用默认网址功能,以根据模型ID生成网址。 " [urlRoot] / ID"