如何观察基础组件属性

时间:2015-09-03 06:27:19

标签: ember.js

这是简单的代码(Ember 1.13.7):

主要组成部分:

export default Ember.Component.extend({
  tagName: 'a',
  classNameBindings: ['isTestCom:test'],
  didInsertElement: function() {
    this._super.apply(this, arguments);
    this.$().on('click', Ember.run.bind(this, function() {
      this._click();
    }));
  },
  willDestroyElement: function() {
    this._super.apply(this, arguments);
    this.$().off('click');
  },

  _click:function(){
    this.toggleProperty('isTest');
  },
  isTest:false,
  isTestCom: Ember.computed('isTest',function(){
    return this.get('isTest');
  }),
});

扩展组件:

export default MainComponent.extend({
  isTestChiid: Ember.computed('isTestCom',function(){
    console.debug('working');
  })
});

问题是isTestChild永远不会发生。任何想法如何观察主电源组件属性将是非常有帮助的

1 个答案:

答案 0 :(得分:0)

如果在某处(模板或javascript代码)引用isTestCom并触发更改事件,但isTestChild不会使用:

export default MainComponent.extend({
  isTestChild: Ember.observer('isTestCom', function() {
    console.debug('working');
  })
});

如果在模板代码或javascript代码中引用isTestChild,请使用:

export default MainComponent.extend({
  isTestChild: Ember.computed('isTestCom', function() {
    console.debug('working');
  })
});

您输错了属性名称,它应该是isTestChild而不是isTestChid