在范围内公开 ng-form 并在 ng-init 中引用

Expose ng-form in scope and reference in ng-init

我正在尝试做这样的事情:

<div ng-form="testForm" ng-init="$ctrl.doStuffWithForm(testForm)>

我在这里定义了一个 form/publish 表单到当前作用域,名称为 testForm,并将该表单对象传递给 ng-init 中的 $ctrl.doStuffWithForm()。然而,似乎正在发生的是,在 ng-init 时,范围内的表单创建 and/or 和 testForm 的创建尚未发生(其他测试向我表明testForm 确实 指向 Angular 生命周期中 稍后 点的表单控制器)。

有什么方法可以像这样将表单控制器传递给 ng-init 中的方法吗?或者我应该换一种方式吗?是否有类似于 ng-init 的属性,但在生命周期的后期使用?我想要做的基本上是一个 ng-repeat 在一个带有 ng-form 的元素上,并在初始化每个元素时将每个表单传递给控制器​​方法。

避免使用 $ng-init 指令。只需将 ng-form 分配给 $ctrl 对象的 属性:

<div ng-form="$ctrl.testForm">
    {{$ctrl.testForm.$dirty}}
</div>

我可以通过将 ng-init 放在 ng-form 元素的子元素中来实现我想要的结果:

<div ng-form="testForm">
    <div ng-init="$ctrl.doStuffWithForm(testForm)></div>
</div>