Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建新模型时将模型url与集合url关联_Javascript_Backbone.js_Coffeescript - Fatal编程技术网

Javascript 创建新模型时将模型url与集合url关联

Javascript 创建新模型时将模型url与集合url关联,javascript,backbone.js,coffeescript,Javascript,Backbone.js,Coffeescript,我正在尝试制作一个新模型并将其保存在服务器上。我的问题是,当我执行model.save(obj)时,它会抛出一个错误必须指定“url”属性或函数 我已经在集合中指定了一个url,我希望使用它 我的代码: class TestModel extends Backbone.Model initialize: -> return; module.exports = TestModel class TestCollection extends Backbone.

我正在尝试制作一个新模型并将其保存在服务器上。我的问题是,当我执行
model.save(obj)
时,它会抛出一个错误
必须指定“url”属性或函数

我已经在集合中指定了一个url,我希望使用它

我的代码:

 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)
这引发错误
必须指定“url”属性或函数

如果我将addModel函数修改为以下内容,它将正常工作!:

addModel : (data)->
        newModel = new TestModel(data)
        @add(newModel)
        newModel.save()
我做错了什么?我想在save()之后将模型添加到集合中。

如果您得到
则必须指定一个“url”属性或函数。
错误,因为此操作失败

上一个代码有效,因为添加到集合中的模型引用了
model.collection
,所以在本例中
save
方法可以。要获得初始代码,您应该向模型提供
urlRoot
,如下所示:

class TestModel extends Backbone.Model
   urlRoot: '/models'

initialize: ->
   return;

 module.exports = TestModel
根据:

如果您使用的是集合外部的模型,请指定一个urlRoot,以启用默认url函数根据模型id生成url。“[urlRoot]/id”


尝试@ivarni:Collection.create,但我想了解model.save()在我的代码中为什么不起作用。您还必须为model定义
url
属性。集合的
url
仅负责获取数据。@最后面的:默认情况下,model.url()的格式为“[Collection.url]/[id]”。另外,这仍然不能解释为什么在调用save之前将模型添加到集合中时它会起作用