【发布时间】:2017-07-15 05:41:40
【问题描述】:
App.component.html
<div class="container">
<h2>Form Validation</h2>
<form>
<div class="form-group">
<label for="prettyName">Name</label>
<input type="text" class="form-control" id="prettyName" required minlength="4" maxlength="20" [(ngModel)]="prettyName" name="prettyName" #name="ngModel">
<div *ngIf="name.errors && (name.dirty || name.touched)" class="alert alert-danger">
<div [hidden]="!name.errors.required">
Name is required
</div>
<div [hidden]="!name.errors.minlength">
Name must be at least 4 characters long
</div>
<div [hidden]="!name.errors.maxlength">
Name cannot be more than 20 characters long
</div>
</div>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
// ... (Same things for username, email and password)
App.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
prettyName: string;
username: string;
email: string;
password: string;
}
我已经关注了关于表单验证的官方文档:https://angular.io/docs/ts/latest/cookbook/form-validation.html#!#template1
请问有人知道这个错误是从哪里来的吗?
干杯
【问题讨论】:
-
name.error这不能被访问,因为name是一个字符串。将输入/表单 ID 从name更改为其他任何内容 -
更改我的输入表单的 id 并没有解决错误,您的意思是:你都改了?你应该改变其中之一你是如何在课堂上声明
prettyName的?我已将 prettyName 声明为字符串 (app.component.ts)。反正现在可以了,要更新代码了
标签: html forms validation angular