Директива
NgModel
создает экземпляр FormControl из модели предметной области и связывает его с элементом управления формой. Правильно.
Во всех примерах ниже к элементу ввода применяется директива NgModel.
<input name="name" ngModel>
<input name="name" [ngModel]="someValue">
<input name="name" [(ngModel)]="someValue">
Это означает, что для каждого элемента выше Angular будет создан экземпляр класса NgModel .
Внутри этот класс содержит новый экземпляр FormControl
public readonly control: FormControl = new FormControl();
, значение которого обновляется и синхронизируется впоследствии с моделью, элементом ввода и остальной формой, если это необходимо.
Следующее, что вам нужно понять, это ссылочная переменная шаблона (#var)
Эта переменная помогает нам получить ссылку на некоторый экземпляр: HTMLElement или Angular Компонент / Директива / Служба.
Ссылочная переменная шаблона может иметь значение #var="exportAsValue"
. Это позволяет нам получить ссылку на конкретный экземпляр c, например, мы добавили директивы к элементам и хотим, чтобы наша ссылочная переменная шаблона ссылалась на первую директиву.
Для этого случая нам нужно определить Свойство exportAs в определении декоратора @Directive:
@Directive({
selector: '[myDir]',
exportAs: 'myCoolDir'
})
export class MyDir {
someProp: string;
}
Теперь мы можем получить ссылку на экземпляр MyDir
, используя следующий фрагмент:
<div myDir #someRef="myCoolDir">
{{ someRef.someProp }}
Вернуться к вашему примеру :
Это означает, что вы можете получить доступ к любым свойствам / методам этих классов, например nameCtrl.invalid
или form.invalid
См. Также: