2

这是 CoffeeScript 中的代码:

class this.User extends Backbone.Model
  initialize: -> 
    @access_token
    @cur_video_id_playing
    @logged_in = 0
    @username
    this.bind "change:username", () -> alert this.get(username) 

this.user = new User;

当我在开发者控制台中并调用

user.username = "newname"

警报不会触发。我究竟做错了什么?

谢谢!

4

1 回答 1

3

你必须使用Model::set

user.set 'username', 'newname'

或者,使用对象文字:

user.set username: 'newname'

用户名实际上将存储在user.attributes.username. 在您的更改侦听器中,您应该使用Model::get;访问用户名 就像是:

@on 'change:username', -> alert @get 'username'
于 2012-08-12T23:55:37.127 回答