使用 Ember.js,我有以下场景:
My Class 有一个属性,需要在实例化时进行一些操作。为了实现这一点,我调用了一个从 init 开始工作的函数。我还想观察这个属性变化,这样如果消费者在运行时设置新值,我将在新值上运行我的操作逻辑。问题是,作为初始化流程的一部分,我在操作后将自己设置为属性的新值,这会调用触发器(如预期的那样)。我不希望这段代码运行两次。
考虑以下代码。'here' 将在控制台打印两次。
var MyObj = Ember.Object.extend({
prop: null,
init: function init() {
this._super.apply(this, arguments);
this._applyProp();
},
_applyProp: function prop() {
console.log('here');
var prop = this.get('prop');
if (prop === 'Dan') {
prop = 'Hi' + prop;
}
this.set('prop', prop);
}.observes('prop')
});
MyObj.create({prop: 'Dan'});
任何建议将不胜感激。