Если вы открыты для использования подхода Reactive Forms, вот что вы можете сделать:
Просто создайте FormControl
в своем классе компонентов с помощью required
и minlength
валидаторов.А затем просто привяжите его к представлению.
Вот как это будет выглядеть в коде:
import { Component } from '@angular/core';
import { FormControl, Validators } from '@angular/forms';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
varFirst: FormControl;
firstStudent = {
name: 'John Doe'
};
ngOnInit() {
this.varFirst = new FormControl(this.firstStudent.name, [Validators.required, Validators.minLength(3)]);
}
}
И в шаблоне:
<label for="studentName">Name</label>
<input type="text" [formControl]="varFirst"/>
<div *ngIf="varFirst.touched && varFirst.errors">
<p *ngIf="varFirst.errors.required">Please enter your name</p>
<p *ngIf="varFirst.errors.minlength">Name should be more than 3 characters.</p>
</div>
PS: Не забудьте добавить ReactiveFormsModule
в массив imports
вашего @NgModule
.
Вот Рабочий примерStackBlitz для вашей ссылки.