backbone.js - model.save 不更新模型值

标签 backbone.js

我正在尝试学习 Backbone.js,但遇到了一个问题。 model.save 没有更新我的模型值,但 model.fetch 更新值很好。

请查看下面的代码,如果我在这里做错了什么请告诉我:

型号

var Person = Backbone.Model.extend({

    url: "CreatePerson",
    defaults: {
        name: "",
        age: 0
    },
initialize: function(){

this.on("change:name",function(){

        alert("Updated value is: "+this.get("name"));
    });
    }

});

我正在我的 html 页面上创建这个模型的一个实例,下面是代码:

var person = new Person({name:"manish"});

person.save(person,{

        wait: true,
        success: function(){
            alert("Data saved: "+person.toJSON().name);
        },
        error: function(){
            alert("Sorry, something wrong went with the system");
        }       
    });
person.fetch({

        success: function(){
            alert("Data Fetched: "+person.get("name"));
        }
    });

在保存和获取时,我从服务器返回以下 JSON 数据:

{"name":"Logan","age":23}

有趣的是,为了保存,更改事件没有被触发并且警告框给我旧模型值(即 manish),而当 fetch 函数执行时,更改事件被触发并且 fetch 回调给我新值(即洛根)。

有人可以帮助我确定我在这里做错了什么吗?

最佳答案

来自 backbonejs.org

http://backbonejs.org/#Model-save

Calling save with new attributes will cause a "change" event immediately, and a "sync" event after the server has acknowledged the successful change. Pass {wait: true} if you'd like to wait for the server before setting the new attributes on the model.

听起来服务器还没有返回它已完成。删除 wait:true 应该会触发更改的事件。

关于backbone.js - model.save 不更新模型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13550437/

相关文章:

javascript - 下划线模板(二合一)/Backbone

javascript - Backbone.js 将 View 附加到多个元素

javascript - 设置 Backbone 模型的属性

jquery-mobile - 如何使用 backbone 动态导入 css?

javascript - 销毁 View 时backbone.js从模型中解除函数绑定(bind)

backbone.js - Backbone View - jquery 事件绑定(bind)

javascript - backbone.js 和具有多个浏览器选项卡/窗口的本地存储会覆盖数据

javascript - 包装多个 Backbone 渲染方法以避免 "before"和 "after"事件重复的优雅方法?

javascript - require.js 和backbone.js 出现 Uncaught TypeError

javascript - 如何在主干模型中强制执行属性类型?