model.set不会在backbone.js中保留值

时间:2013-02-06 06:36:00

标签: javascript backbone.js

this.save(userDetails, {
    success: function (user, result, xhr) {
        this.set({userName: user.userName});
    },

    error: function (user, result, xhr) {

    }
});

return this.userName;

当我尝试使用我得到的响应设置userName时,它没有设置。当我尝试提醒返回this.userName时,它说我未定义。

2 个答案:

答案 0 :(得分:1)

这里有几件事:

  1. 调用成功函数(保存后回调)时,它会返回保存的整个模型,因此您可以尝试:

    成功:功能(型号){ model.set({userName:model.userName}); }

  2. 保存是异步的,因此您可能需要执行以下操作:

    this.model.on('同步',函数(模型){ model.set({userName:model.userName}); //编程的其余部分; })

答案 1 :(得分:1)

user是Backbone模型,所以基本上你似乎想要这样做:

user.set({userName: user.get('userName'});

如果userName是从服务器返回的值,则可能已在模型上设置了该值。

在您的成功处理程序中,试试这个:

console.log(user.get('userName'));

您不使用model.userName访问模型的属性,而是使用model.get('userName')