简单的模板驱动形式 Angular4 给出错误
Simple Template-Driven Form Angular4 is giving error
做一个简单的 'Template-Driven Form' 虽然我没有做任何特别的事情,但我收到了错误。这是一个简单的表单,只有一个输入和一个必需的验证。就这样。有人可以帮我吗?
abc.component.html
<form #customForm="ngForm" (ngSubmit)="alpha(customForm)">
<input type="text" name="firstName" ngModel #firstName="ngModel" required><br/>
<div class="red" *ngIf="customForm.firstName.touched">
<div *ngIf="customForm.firstName.errors.required">Input field is required!</div>
</div>
<button type="submit" [disabled]="customForm.invalid">Submit</button>
</form>
错误:
Cannot read property 'touched' of undefined
快照:
有人可以指出,我到底做错了什么吗?
由于您已经声明了模板并通过执行 #firstName="ngModel"
为其分配了 ngModel
的值,因此 firstName
模板变量将已经具有 firstName
FormControl
。所以你可以像这样简单地应用检查:*ngIf="firstName.touched"
像这样更改您的模板:
<form
#customForm="ngForm"
(ngSubmit)="alpha(customForm)">
<input
type="text"
name="firstName"
ngModel
#firstName="ngModel"
required>
<br/>
<div
class="red"
*ngIf="firstName.touched">
<div
*ngIf="firstName.errors.required">
Input field is required!
</div>
</div>
<button
type="submit"
[disabled]="customForm.invalid">
Submit
</button>
</form>
这里有一个 Working StackBlitz 供您参考。
您不需要使用 customForm
您直接通过 #firstName
获得了参考
<div class="red" *ngIf="firstName.touched">
<div *ngIf="firstName.errors.required">
Input field is required!
</div>
</div>
但是当表单控件有效时,firstName.errors.required
仍然会抛出错误,您可以使用 ?.
运算符,或者您需要像这样更新 ngIf
表达式
<div class="red" *ngIf="firstName.touched && firstName.invalid">
或者您可以使用“?.”运算符
<div *ngIf="firstName.errors?.required">Input field is required!</div>
When the form Control is valid the errors property will be null
做一个简单的 'Template-Driven Form' 虽然我没有做任何特别的事情,但我收到了错误。这是一个简单的表单,只有一个输入和一个必需的验证。就这样。有人可以帮我吗?
abc.component.html
<form #customForm="ngForm" (ngSubmit)="alpha(customForm)">
<input type="text" name="firstName" ngModel #firstName="ngModel" required><br/>
<div class="red" *ngIf="customForm.firstName.touched">
<div *ngIf="customForm.firstName.errors.required">Input field is required!</div>
</div>
<button type="submit" [disabled]="customForm.invalid">Submit</button>
</form>
错误:
Cannot read property 'touched' of undefined
快照:
有人可以指出,我到底做错了什么吗?
由于您已经声明了模板并通过执行 #firstName="ngModel"
为其分配了 ngModel
的值,因此 firstName
模板变量将已经具有 firstName
FormControl
。所以你可以像这样简单地应用检查:*ngIf="firstName.touched"
像这样更改您的模板:
<form
#customForm="ngForm"
(ngSubmit)="alpha(customForm)">
<input
type="text"
name="firstName"
ngModel
#firstName="ngModel"
required>
<br/>
<div
class="red"
*ngIf="firstName.touched">
<div
*ngIf="firstName.errors.required">
Input field is required!
</div>
</div>
<button
type="submit"
[disabled]="customForm.invalid">
Submit
</button>
</form>
这里有一个 Working StackBlitz 供您参考。
您不需要使用 customForm
您直接通过 #firstName
<div class="red" *ngIf="firstName.touched">
<div *ngIf="firstName.errors.required">
Input field is required!
</div>
</div>
但是当表单控件有效时,firstName.errors.required
仍然会抛出错误,您可以使用 ?.
运算符,或者您需要像这样更新 ngIf
表达式
<div class="red" *ngIf="firstName.touched && firstName.invalid">
或者您可以使用“?.”运算符
<div *ngIf="firstName.errors?.required">Input field is required!</div>
When the form Control is valid the errors property will be
null