Angular - 尝试使用已销毁的视图:detectChanges

时间:2017-09-26 16:41:13

标签: angular

我有一个方法来控制在我的页面上显示/隐藏使用*ngIf指令的输入。有一个按钮可以切换显示/隐藏,这实际上是从页面添加/删除它。

当我切换时,我收到错误Attempt to use a destroyed view: detectChangesShow -> Hide (Fine) -> Show -> Hide (Error)

这是被调用的方法。我切换此输入的按钮调用 cancelEditMode()

closeEditMode() {

    for (var i = 0; i < this._mapsService.rulesInEditMode.length; i++) {
        if (this._mapsService.rulesInEditMode[i].parentID == this.parentRule.controls['RuleParentID'].value && this._mapsService.rulesInEditMode[i].attributeID == this.ruleAttributeData.AttributeID) {
            this._mapsService.rulesInEditMode.splice(i, 1);
            break;
        }
    }

}

cancelEditMode() {

    this.
    ruleAttributeForm.
    valueChanges.
    subscribe(form => {
        this.closeEditMode();
    });

    // Reset to initial input before the user made 2-way binding changes
    this.ruleAttributeForm.controls['AttributeValue'].setValue(this.initialValueInput, { emitEvent: true })

}

这似乎是表单订阅和值设置的问题。如果我在cancelEditMode()中拨打的唯一内容是closeEditMode(),无论我切换多少次,都不会收到错误。

我对此方法的目标是设置表单控件的值,一旦设置完毕,我们就会关闭输入(切换*ngIffalse)。在某个地方,它并不是这样的。

思想?

0 个答案:

没有答案