在声明视图变量之前访问它

时间:2017-08-11 01:02:25

标签: angular

我的表单验证在ng类中运行,在某些情况下,我想将类复制到父级容器中。

<div [ngClass]="{'ng-invalid': input.invalid, 'ng-valid': input.valid, 'ng-pristine': input.pristine}">
  <input [name]="control.id" [(ngModel)]="control.value" required #input="ngModel">
</div>

这大部分都有效,但我在控制台上收到以下错误:

  

错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后发生了变化。上一个值:'false'。当前价值:'true'。

有没有办法在定义视图变量之前引用它?

1 个答案:

答案 0 :(得分:1)

如果您不确定是否定义某个变量,您可以使用Elvis运算符。

{{1}}

也许您可以创建一个封装ngClass和输入的新组件? input.xxx使你看起来应该使用FormControls:他们为你做有效/无效/原始的东西..