Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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 未保存主干模型_Javascript_Backbone.js - Fatal编程技术网

Javascript 未保存主干模型

Javascript 未保存主干模型,javascript,backbone.js,Javascript,Backbone.js,我的主干模型在更新时未保存到服务器。 我已经设置了模型的urlRoot属性(根据文档,这是不必要的)。但是仍然没有发出HTTP请求 更新: 我在回调中添加了一个success方法。它正在被执行。 但是没有向服务器发送任何请求 更新: 我发现了错误。我添加此代码是为了保存整个集合 var elementUrlRoot = api_url + '/elements'; var elementModel = Backbone.Model.extend({ 'idAttribute': '_i

我的主干模型在更新时未保存到服务器。 我已经设置了模型的urlRoot属性(根据文档,这是不必要的)。但是仍然没有发出HTTP请求

更新:

我在回调中添加了一个success方法。它正在被执行。 但是没有向服务器发送任何请求

更新:

我发现了错误。我添加此代码是为了保存整个集合

var elementUrlRoot = api_url + '/elements';

var elementModel = Backbone.Model.extend({
    'idAttribute': '_id' //mongoDB
    , 'urlRoot': elementUrlRoot
    , defaults: {
        "signature": "",
        "group": 0
    }//defaults
});

var elementCollection = Backbone.Collection.extend({
    model: elementModel
    , 'url': elementUrlRoot
});

var testmodel = new elementModel({DOM_id: 111});

testmodel.save({signature: "test"},
    {
        error: function (model, response, options) {
            console.log('test model save error:', response);
        },
        success: function () {
            console.log('test model save success');
        }
    }
);
它起作用了,我可以用它保存收藏。
但这似乎导致了保存单个模型的问题。请求是在我删除它时发出的。

需要您的urlRoot,因为您的模型不是集合的一部分

尝试在赋值的左侧取消引用您的urlRoot属性

尝试将错误回调添加到
保存
选项中。谢谢您提供的信息。我已经添加了这个回调。但是它不会向控制台生成任何输出,因此不会调用它。但我在控制台的“网络”选项卡上没有看到任何活动。请求是否未显示在Chrome控制台的网络选项卡上?请求显示在网络选项卡上。您可能只为脚本或类似的内容选择了一个过滤器。是否选择了任何过滤器按钮?如果您想查看来自您的模型的所有AJAX请求等等,那么您需要选择XHR。文档说“如果您使用的是集合之外的模型,请指定一个urlRoot,…”我理解,OP说“我已经设置了模型的urlRoot属性(根据文档,这是不必要的)”我指出这是必要的,因为所讨论的模型在集合之外。仅仅是试图澄清OP对urlRootUnquoting键的必要性的一些困惑,不应该有任何区别。您实际上只是增加了混乱,因为文档中说不需要urlRoot键。“我的收藏”指定了url,因此从该收藏中提取的任何模型都应该具有正确的url。如果我增加了您的困惑,我深表歉意。您的示例没有显示从集合中获取的模型,因此我假定您使用的是一个独立的模型,实际上需要您使用urlRoot。在您给出的示例中,您需要在模型上使用urlRoot,这就是您给出的示例,我只是想确保您知道。再次为你的困惑感到抱歉。@reggie我没有代表对你的帖子发表评论,但你能试试吗。在jsbin中,它似乎正确地发出了请求(由于跨域,它失败了,但请求在“网络”选项卡中显然是有问题的)。我猜可能是您的其他代码导致了此错误,例如加载库可能会覆盖backbone.sync函数,例如backbone localstorage。
Backbone.Collection.prototype.syncCollection = function (options) {
    console.log('syncing the collection');
    Backbone.sync("create", this, options);
};