Forms Angular2表单-ngControl
我试图使用Forms Angular2表单-ngControl,forms,angular,Forms,Angular,我试图使用ngControl根据用户的输入应用错误类 不知怎么的,我没能成功。我看到设置了适当的类(第ng行无效),但当尝试使用name.valid(其中name是我的ngControl)时,它不起作用 html: 我在angular.io示例中看到,他们确实这样使用它(仅用于其他情况,如show/hidedivs) 下面是简单的plunker: 当输入字段为空时,我希望upperdiv获得alert类,但这并没有发生。事实上,模板中有三件事需要更改: ngClass应该是[ngClass]
ngControl
根据用户的输入应用错误类
不知怎么的,我没能成功。我看到设置了适当的类(第ng行无效),但当尝试使用name.valid
(其中name
是我的ngControl)时,它不起作用
html:
我在angular.io示例中看到,他们确实这样使用它(仅用于其他情况,如show/hidedivs
)
下面是简单的plunker:
当输入字段为空时,我希望upper
div
获得alert
类,但这并没有发生。事实上,模板中有三件事需要更改:
应该是ngClass
。否则,该值将被视为字符串而不是表达式[ngClass]
应该是#name
。否则,将引用DOM元素而不是控件#name=“ngForm”
- Angular2中的控件没有
属性,只有无效的
属性有效的
<div [ngClass]="{alert: !name.valid}">
<label for="name">Name</label>
<input ngControl="name" #name="ngForm"
required id="name" [(ngModel)]="user.name"/>
</div>
有关更多详细信息,请参阅本文:
应该是ngClass
。否则,该值将被视为字符串而不是表达式[ngClass]
应该是#name
。否则,将引用DOM元素而不是控件#name=“ngForm”
- Angular2中的控件没有
属性,只有无效的
属性有效的
<div [ngClass]="{alert: !name.valid}">
<label for="name">Name</label>
<input ngControl="name" #name="ngForm"
required id="name" [(ngModel)]="user.name"/>
</div>
有关更多详细信息,请参阅本文:
Uncaught(在promise中):异常:表达式{alert:!name.valid}inApp@4:7'在检查后已更改。
我在我的应用程序中看到了它,这就是为什么我从所有更改和解决方法开始,最后在这里结束。你有什么想法,应该如何修复(在我的应用程序中,它是name.valid和name.touch的组合)。不客气!我认为您可以尝试在组件的ngOnInit
方法中调用ChangeDetectorRef
的detectChanges
方法。看到这个问题:。非常感谢。我试了这么多的组合,最后我犯了一些错误。但你说得很清楚,我看到它现在起作用了。我还有一个问题。我在控制台中看到这个异常被抛出:Uncaught(在promise中):异常:表达式{alert:!name.valid}inApp@4:7'在检查后已更改。
我在我的应用程序中看到了它,这就是为什么我从所有更改和解决方法开始,最后在这里结束。你有什么想法,应该如何修复(在我的应用程序中,它是name.valid和name.touch的组合)。不客气!我认为您可以尝试在组件的ngOnInit
方法中调用ChangeDetectorRef
的detectChanges
方法。请参见以下问题:。
<div [ngClass]="{alert: !name.valid}">
<label for="name">Name</label>
<input ngControl="name" #name="ngForm"
required id="name" [(ngModel)]="user.name"/>
</div>
<div [ngClass]="{alert: !userForm.controls.name.valid}">
<label for="name">Name</label>
<input [ngFormControl]="userForm.controls.name"
id="name" [(ngModel)]="user.name"/>
</div>