【发布时间】:2018-04-04 10:27:39
【问题描述】:
在对两个 Angular 表单模块(FormsModule 和 ReactiveFormsModule)进行逆向工程后,我统计了 ngModel 的三种用途作为指令中的输入。
在 FormsModule 中,ngModel 在 NgModel 指令中使用一次。 ngModel 是指令选择器的一部分(选择器:'[ngModel]:not([formControlName]):not([formControl])')。因此,对于 NgModel 指令,ngModel 有两个角色。它是一个输入,同时也是一个选择器。
在 ReactiveFormsModule 中,ngModel 被使用了两次。第一次使用是在 FormControlDirective 中(选择器:'[formControl]')。 第二个,在 FormControlName 指令中(选择器:'[formControlName]')。在这两种情况下,ngModel 都是一个简单的输入,它不是指令选择器的一部分。
这三个事件允许将 FormControl 绑定到模型。但是,第一个有另一个副作用:它还在将 FormControl 绑定到模型之前创建它。
还有其他用途吗?我错过了其他人吗?
【问题讨论】:
-
ngModel只是一个选择器,不清楚你在问什么。你能把你的问题说得更具体些吗? -
看起来它不仅仅是一个选择器(至少在一种情况下)。这里代码github.com/angular/angular/blob/…
-
这个问题可以改写为:有多少指令使用 ngModel 作为输入,有多少指令使用它作为选择器?
-
看我的回答here
标签: angular