Javascript 主干中的listenTo模型属性
我正在尝试收听模型的特定属性(Javascript 主干中的listenTo模型属性,javascript,backbone.js,Javascript,Backbone.js,我正在尝试收听模型的特定属性(转换,一个数字计数)。在一个视图中,我有this.listenTo(this.model,'change',_u.bind(this.transition,this)); 它将侦听整个模型更改事件。但是,以下各项不起作用: this.listenTo(this.model, 'change:transitions', _.bind(this.transition, this)); 我应该使用什么语法结构或方法调用?如果需要不同的BB方法调用,有什么区别 型号:
转换
,一个数字计数)。在一个视图中,我有this.listenTo(this.model,'change',_u.bind(this.transition,this));
它将侦听整个模型更改事件。但是,以下各项不起作用:
this.listenTo(this.model, 'change:transitions', _.bind(this.transition, this));
我应该使用什么语法结构或方法调用?如果需要不同的BB方法调用,有什么区别
型号:
define([
'underscore',
'backbone'
], function(_, Backbone) {
var RepresentationModel = Backbone.Model.extend({
initialize: function(options){
this.representationType = options.representationType;
this.previousRepresentationType = undefined;
this.transitions = 0;
},
transition: function(newRep){
this.set({
previousRepresentationType: this.representationType,
representationType: newRep,
transitions: this.transitions+1
});
}
});
return RepresentationModel;
});
倾听意见:
...
this.listenTo(this.model, 'change', _.bind(this.transition, this));
...
调用视图:(与侦听视图不同)
你所拥有的应该有用。由于其他原因,模型很可能没有触发
change:transitions
change事件。调查(或发布)您希望在模型上设置transitions
属性的代码片段
旁注:您可以指定上下文,因此不需要
.bind
:this.listenTo(this.model,'change:transitions',this.transition,this)代码>
var measureRepColl = StageCollection.get(hTrackCID).get('measures').models[0].get('measureRepresentations').get(measureRepCID).transition(newRepType);