在Angular隐藏指令触发检查错误后,表达式已更改

时间:2017-12-10 13:42:32

标签: angular

我收到错误:

ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'true'. Current value: 'false'.

HTML

<div #visible >
    <div [hidden]="toInt(visible.style.width)<19"  >

    </div>
</div>

.TS

 toInt(x:string):number{
    return parseInt(x); 
  }

通常的药物是在变化后明确地进行变化检测。 但是我没有更改.ts文件中的任何属性,所以我不知道放在哪里

this.changeDetectorRef.detectChanges();

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我在不同的场景中经历了痛苦。可能的解决方法是

  1. 在.ts @ViewChild('visible') divElement: ElementRef;
  2. 中访问#visible
  3. 以及.ts

     ngAfterViewInit() {
           this._hideDiv= '<get the div length and do your condition>...'   
    

    }

  4. 最后在您的模板<div [hidden]="_hideDiv"> </div>