Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 在集合中获取错误。创建:未捕获错误:A";url";必须指定属性或函数_Javascript_Backbone.js - Fatal编程技术网

Javascript 在集合中获取错误。创建:未捕获错误:A";url";必须指定属性或函数

Javascript 在集合中获取错误。创建:未捕获错误:A";url";必须指定属性或函数,javascript,backbone.js,Javascript,Backbone.js,我有一个模型 var TodoModel = Backbone.Model.extend({ defaults: { title : '', completed: false } }); 当我尝试使用collection.create方法将此模型添加到集合中时,我遇到了一个错误 未捕获错误:必须指定“url”属性或函数 我试着用下面的方法 var TodoCollection = Backbone.Collection.extend({

我有一个模型

var TodoModel = Backbone.Model.extend({
    defaults: {
        title : '',
        completed: false
    }
});
当我尝试使用
collection.create
方法将此模型添加到集合中时,我遇到了一个错误

未捕获错误:必须指定“url”属性或函数

我试着用下面的方法

var TodoCollection = Backbone.Collection.extend({
    model : TodoModel,
});

todoCollection.create({title:'Try out code examples', completed:true});

有人能帮我吗?

如果您正在创建模型/集合,默认情况下,您必须为资源指定url。您可以按如下方式执行此操作:

var TodoModel = Backbone.Model.extend({
    defaults: {
        title : '',
        completed: false
    }
});

var TodoCollection = Backbone.Collection.extend({
    url: '/todos',
    model : TodoModel,
});
有关更多详细信息,请参阅


我认为这里的混乱来自Backbone.js的Todo示例,它使用本地存储()。如果跳转到localstorage代码的底部,可以看到主干。设置了同步。通过这样做,我们改变了创建模型的默认行为,使其不再需要Url。在大多数主干网应用程序中,情况并非如此,需要服务器端URL才能使模型正常工作。

如果要创建模型/集合,默认情况下必须为资源指定URL。您可以按如下方式执行此操作:

var TodoModel = Backbone.Model.extend({
    defaults: {
        title : '',
        completed: false
    }
});

var TodoCollection = Backbone.Collection.extend({
    url: '/todos',
    model : TodoModel,
});
有关更多详细信息,请参阅

我认为这里的混乱来自Backbone.js的Todo示例,它使用本地存储()。如果跳转到localstorage代码的底部,可以看到主干。设置了同步。通过这样做,我们改变了创建模型的默认行为,使其不再需要Url。在大多数主干网应用程序中,情况并非如此,模型工作需要服务器端URL。

这是因为destroy()函数将调用backbone.sync来更新服务器,而不仅仅是前端的模型

因此,如果使用REST同步数据,则需要在模型中设置url属性,以便知道向何处发送请求:

Backbone.Model.extend({
    url: "http://myapi.com/"
})
为了获得更大的灵活性,您还可以设置urlRoot:

或者你可以加上

 Backbone.sync = function(method, model, success, error){
    success();
  } 
这是因为destroy()函数将调用Backbone.sync来更新服务器,而不仅仅是前端的模型

因此,如果使用REST同步数据,则需要在模型中设置url属性,以便知道向何处发送请求:

Backbone.Model.extend({
    url: "http://myapi.com/"
})
为了获得更大的灵活性,您还可以设置urlRoot:

或者你可以加上

 Backbone.sync = function(method, model, success, error){
    success();
  } 
使用你的代码