在对两个Angular表单模块(FormsModule和ReactiveFormsModule)进行逆向工程之后,我计算了三次使用ngModel作为指令中的输入。
在 FormsModule 中,ngModel在 NgModel 指令中使用一次。 ngModel是指令选择器的一部分(selector:'[ngModel]:not([formControlName]):not([formControl])')。因此,对于NgModel指令,ngModel有两个角色。它是一个输入,同时也是一个选择器。
在ReactiveFormsModule中,ngModel使用两次。第一个用途是在 FormControlDirective (选择器:'[formControl]')中。 第二个是在 FormControlName 指令中(选择器:'[formControlName]')。在这两种情况下,ngModel都是一个简单的输入,它不是指令选择器的一部分。
三次出现允许将FormControl绑定到模型。但是,第一个还有另一个副作用:它还会在将FormControl绑定到模型之前创建FormControl。
还有其他用途吗?我错过了其他的吗?
答案 0 :(得分:1)
有多少指令使用ngModel作为输入以及使用多少指令 它作为选择器?
ngModel
作为输入绑定:反应形式:
模板驱动表格:
ngModel
作为选择器:NgModel
模板驱动指令[required][ngModel]
,[email][ngModel]
,[minlength][ngModel]
等。DefaultValueAccessor
,NumberValueAccessor
等。请在此深入了解ControlValueAccessor
:Never again be confused when implementing ControlValueAccessor in Angular forms NgControlStatus
自动应用于Angular表单控件,根据控件状态设置CSS类ng-valid
,ng-pending
和其他类答案 1 :(得分:0)
[(ngModel)]主要用作双向绑定,这意味着您可以将其值传递给TS或JS文件中的变量。 我给你举个例子。
<input [(ngModel)]="array.test"</input>
将使用输入中写入的值为您的JSON数组提供属性测试。
希望这有帮助。