【发布时间】:2020-08-21 08:36:16
【问题描述】:
我是 Angular 的初学者,我对 NgModel 指令及其可能的用例有一些概念上的疑问。
阅读 Angular 官方文档:https://angular.io/api/forms/NgModel
我只能阅读:
从域模型创建一个 FormControl 实例并将其绑定到 表单控制元素。
在我看来,这个 FormControl 应该是一个对象,它保存插入到我的表单字段中的值和相关字段状态(例如用于验证 pourpose)。这是正确的吗?现在我对具体的用例有些怀疑。
让我们举个例子。
我有这个表格:
<form (ngSubmit)="onSubmit(form)" #form="ngForm">
<div class="form-group">
<label for="name">Character Name</label>
<input
type="text"
id="name"
name="name"
class="form-control"
ngModel
required
#nameCtrl="ngModel">
<span class="help-block" *ngIf="nameCtrl.invalid && nameCtrl.touched">Please, enter a name!</span>
</div>
<div class="form-group">
<label for="side">Chose Side</label>
<select name="side" id="side" class="form-control" ngModel>
<option *ngFor="let option of availableSides" [value]="option.value">
{{ option.display }}
</option>
</select>
</div>
<button class="btn btn-primary" type="submit" [disabled]="form.invalid">Add Character</button>
</form>
在我的父表单元素上,我有:#form="ngForm"。具体说明什么?据我所知,它只是将整个表单的引用创建到 form "object"\reference 中。
-
然后我的表单中有这个 input 字段:
这里ngModel出现两次:
为什么我有第一个 ngModel?究竟是什么意思?
第二次出现的是 #nameCtrl="ngModel",它应该简单地将这个输入字段的引用创建到 nameCtrl“地址”中。
【问题讨论】:
标签: angular angular-directive angular-ngmodel