这是简单的代码(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
永远不会发生。任何想法如何观察主电源组件属性将是非常有帮助的
答案 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
。