监听器限制为模型属性不触发

时间:2012-08-12 23:24:52

标签: backbone.js coffeescript

以下是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"

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

谢谢!

1 个答案:

答案 0 :(得分:3)

您必须使用Model::set

user.set 'username', 'newname'

或者,使用对象文字:

user.set username: 'newname'

用户名实际上会存储在user.attributes.username中。在您的更改侦听器中,您应使用Model::get访问用户名;类似的东西:

@on 'change:username', -> alert @get 'username'