我有一个名为'checked‘的数组属性,我正在观察它,我想在更新该属性时暂时禁用观察。removeObserver和addObserver的正确语法是什么?
applyPreReqs: function() {
var currentContent = this.get('content');
currentContent.entitlements.forEach(function(entitlement) {
if (entitlement.checked && entitlement.prerequisiteEntitlementIds !== undefined) {
entitlement.prerequisiteEntitlementIds.forEach(function(prereq) {
currentContent.entitlements.forEach(function(item) {
if (item.id === prereq && !item.checked) {
Ember.set(item, 'checked', true);
}
});
});
} else {
currentContent.entitlements.forEach(function(item) {
if (item.id !== entitlement.id && item.checked) {
Ember.removeObserver('content.entitlements.@each.checked', this, this.applyPreReqs);
Ember.set(item, 'checked', false);
Ember.addObserver('content.entitlements.@each.checked', this, this.applyPreReqs);
}
});
}
}.observes('content.entitlements.@each.checked')谢谢!
发布于 2014-11-11 14:26:21
我不知道您在这里所做的一切,但这就是您如何删除数组观察者,然后进行更新,然后在观察者被触发时添加回来的观察者。
applyPreReqs: function() {
var currentContent = this.get('content');
currentContent.entitlements.forEach(function(entitlement) {
....
}
currentContent.entitlements.removeArrayObserver(this);
}.observesBefore('content.entitlements.@each.checked')
applyPreReqs: function() {
var currentContent = this.get('content');
currentContent.entitlements.forEach(function(entitlement) {
....
}
currentContent.entitlements.addArrayObserver(this);
}.observes('content.entitlements.@each.checked')我希望这能帮助干杯
https://stackoverflow.com/questions/26858395
复制相似问题