在ng-init

时间:2019-07-10 18:34:24

标签: angularjs angularjs-forms angularjs-templates

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

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

在其中定义表单/将表单发布到名称为testForm的当前范围,并将该表单对象传递到$ctrl.doStuffWithForm()中的ng-init。但是,似乎正在发生的情况是,在ng-init时,还没有发生表单的创建和/或范围内testForm的创建(其他测试向我表明{ {1}}在角生命周期的点指向

我有什么办法像这样将表单控制器传递给testForm中的方法吗?还是我应该以其他方式来做?是否存在类似于ng-init的属性,但该属性会在生命周期的后期使用?我想做的基本上是在元素上带有ng-init的{​​{1}},并在初始化每个元素时将每种形式传递给控制器​​方法。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

通过将ng-init放在ng-form元素的子元素中,我可以实现所需的结果:

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