有人能解释为什么我们需要ngModel和“nameField=”吗;ngModel";都在angular6表单的同一输入字段中?

有人能解释为什么我们需要ngModel和“nameField=”吗;ngModel";都在angular6表单的同一输入字段中?,angular6,angular-forms,Angular6,Angular Forms,我从我的angular6开始,我遇到了下面的语法 <input type="text" class="form-control" name="company-name" ngModel #nameField="ngModel" required minlength="3"> 现在我的问题是,如果ngModel和name已经存在,以唯一地标识表单组件,并且ngModel指令将其与角度表单绑定,那么我们为什么需要#nameFiel

我从我的angular6开始,我遇到了下面的语法

<input type="text" 
    class="form-control" 
    name="company-name"
    ngModel
    #nameField="ngModel"
    required
    minlength="3">

现在我的问题是,如果
ngModel
name
已经存在,以唯一地标识表单组件,并且
ngModel
指令将其与角度表单绑定,那么我们为什么需要
#nameField=“ngModel”

我们可以从
name=“company name”
获得输入值。那么为什么是2
NgModel
s


#nameField=“ngModel”
[(ngModel)]=“nameField”
之间的区别是什么?

要创建有效的模板驱动表单控件,您只需添加
name=“company name”
ngModel

模板引用
#nameField=“ngModel”
可以用作html中的变量(因此它是可选的)


[(ngModel)]=“nameField”
是Angular中的双向数据绑定,也称为“香蕉盒”(要获得更详细的解释,请阅读本文或官方文档)

我一直认为出于验证目的也需要它,因此错误消息在控件下方显示得很好