首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ember removeObserver和addObserver

ember removeObserver和addObserver
EN

Stack Overflow用户
提问于 2014-11-11 13:47:09
回答 1查看 1.2K关注 0票数 0

我有一个名为'checked‘的数组属性,我正在观察它,我想在更新该属性时暂时禁用观察。removeObserver和addObserver的正确语法是什么?

代码语言:javascript
复制
        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')

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-11-11 14:26:21

我不知道您在这里所做的一切,但这就是您如何删除数组观察者,然后进行更新,然后在观察者被触发时添加回来的观察者。

代码语言:javascript
复制
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')

我希望这能帮助干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26858395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档