Javascript AngularJS FormController中$addControl方法的用途是什么?

Javascript AngularJS FormController中$addControl方法的用途是什么?,javascript,angularjs,Javascript,Angularjs,我正在浏览这些文件,偶然发现了全班同学。我发现有两种方法可以添加和删除控件,即$addControl()和$removeControl()。我假设这些控件将用于动态添加和删除表单控件,但如何准确地使用它们呢?formController跟踪其中的一组子输入控件,以便在作用域上设置这些子输入控件的控制器,并跟踪$dirty/$pristine,$valid/$invalid等。。。基于其子控件的窗体的状态 此API由ngModelController调用,这是Angular实现其内置(并为自定义)

我正在浏览这些文件,偶然发现了全班同学。我发现有两种方法可以添加和删除控件,即
$addControl()
$removeControl()
。我假设这些控件将用于动态添加和删除表单控件,但如何准确地使用它们呢?

formController
跟踪其中的一组子输入控件,以便在作用域上设置这些子输入控件的控制器,并跟踪
$dirty
/
$pristine
$valid
/
$invalid
等。。。基于其子控件的窗体的状态

此API由
ngModelController
调用,这是Angular实现其内置(并为自定义)输入控件的方式,并由子窗体的
formController
调用,以向其父窗体
formController
注册它们自己

如果您实现了
需要“ngModel”
的自定义输入控制器(即支持
ngModel
抽象层的自定义输入控件),那么这就为您完成了


对于绝大多数情况,这已经足够了。但是,假设可以实现自己的
ngModel
-like指令,然后可以使用此API将非
ngModel
控件注册到
formController

是的,它可以用于动态添加控件。当您使用ng模型输入时,这是自动为您完成的。因此,基本上只要有一个输入元素具有
ng model
属性,或者有一个指令需要ngModel,或者有
ng model
作为其模板的一部分,那么我就不必显式地调用
$addControl()
方法?如果是这样的话,那么这样的代码被认为是正确的:@kshep92,
ngModel
就是
$addControl
的作用。绝大多数实现输入控件的指令(例如,
input
select
,等等)都使用
ngModel
方法,对于这些指令,无需担心
$addControl
我在自定义控件上使用的是
ngModel
,但它的父窗体没有条目:(我要补充的是,使用相同ngModel的两个输入将导致不添加ngModel