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

    error: function (user, result, xhr) {

    }
});

return this.userName;

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

4

2 回答 2

1

这里有几件事:

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

    成功:函数(模型){ model.set({userName:model.userName});}

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

    this.model.on('sync',function(model){ model.set({userName : model.userName}); //剩下的编程; })

于 2013-02-06T06:41:41.540 回答
1

user是 Backbone 模型,所以基本上看起来你正在尝试这样做:

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

如果 userName 是从您的服务器返回的值,它可能已经在模型上设置。

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

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

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

于 2013-02-06T06:49:51.510 回答