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 backbonejs POSTinstead启动保存_Javascript_Backbone.js - Fatal编程技术网

Javascript backbonejs POSTinstead启动保存

Javascript backbonejs POSTinstead启动保存,javascript,backbone.js,Javascript,Backbone.js,我在尝试将任务模型更新到数据库时遇到问题。它的行为就像是一个新的模式。我在保存后也得到了一个可能相关的错误?错误和代码如下。是否需要其他信息 我看了这个,但我已经确保我使用id属性 错误: Uncaught TypeError: Object function (obj) { return new wrapper(obj); } has no method 'has' _.extend.setbackbone.js:246 _.extend.save.options.successbackbon

我在尝试将任务模型更新到数据库时遇到问题。它的行为就像是一个新的模式。我在保存后也得到了一个可能相关的错误?错误和代码如下。是否需要其他信息

我看了这个,但我已经确保我使用id属性

错误:

Uncaught TypeError: Object function (obj) { return new wrapper(obj); } has no method 'has'
_.extend.setbackbone.js:246
_.extend.save.options.successbackbone.js:308
jQuery.Callbacks.firejquery.js:1046
jQuery.Callbacks.self.fireWithjquery.js:1164
donejquery.js:7399
jQuery.ajaxTransport.send.callback
代码:


我不确定你的错误是什么。如果模型设置了id,则isNew()应返回false。检查模型上的“idAttribute”,并确保已在模型上设置此值

确实存在的一个问题是save()方法是异步的。如果要在保存任务时呈现TaskView,则应添加成功处理程序(如果失败,则添加错误处理程序),例如


我发现这个问题。。。在我使用的文本中,措辞被替换。它们处理POST as update和PUT as new。

没问题,请注意,在您的示例中,名称将在视图中正确更新,但是在更复杂的示例中,服务器更新其他属性时,这很有用。如果保存失败,错误处理程序应该在那里。是的,我前几天刚刚实现了这个,并基于回调更改了视图呈现。
Update: function(id) {
            console.log('Updating task');
            this.task = this.taskList.get(id);
            var new_task_name = prompt("enter new name for " + this.task.get("name"),"Default...");
            console.log('saving task ' + this.task.id +': '+ this.task.get("name") + ' isNew? -' + this.task.isNew());
            this.task.save({
                name: new_task_name
            });
            console.log('task saved ' + this.task.id +': '+ this.task.get("name") + ' isNew? -' + this.task.isNew());

            this.taskView = new TaskView({
                model: this.task
            });
            this.taskView.render();
        }
var me = this;
this.task.save({
    name: new_task_name
}, {
    success: function(task, response) {
        console.log('task saved ' + task.id +': '+ task.get("name") + ' isNew? -' + task.isNew());

        me.taskView = new TaskView({
            model: task
        });
        me.taskView.render();
    },
    error: function(model, response) {
        var errorMsg;
        // Response may be string (if failed model validation) or an AJAX response (if failed server side)
        if (_.isString(response))
            errorMsg = response;
        else
            errorMsg = response.responseText;

        // Display error
    }
});