listenTo骨干中的模型属性

时间:2013-09-19 04:42:40

标签: javascript backbone.js

我正在尝试收听模型的特定属性(transitions,数字计数)。在视图中,我有this.listenTo(this.model, 'change', _.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));
...

调用视图:(与收听视图不同)

var measureRepColl = StageCollection.get(hTrackCID).get('measures').models[0].get('measureRepresentations').get(measureRepCID).transition(newRepType);

1 个答案:

答案 0 :(得分:1)

你有什么应该工作。由于其他原因,模型很可能不会触发change:transitions更改事件。调查(或发布片段)您希望在模型上设置transitions属性的代码。


附注可以指定上下文,因此不需要_.bindthis.listenTo(this.model, 'change:transitions', this.transition, this);