如何在一定条件下让Angular JS ng-init?

时间:2015-04-17 02:30:54

标签: javascript angularjs angularjs-ng-init

假设我有以下简短的输入形式:

<form ng-controller="parentController" action="testing.php" method="post">
    <input name="parentInputField" ng-model="x">
    <div ng-controller="childController">
        <div ng-repeat="item in itemList">
            <input name="childInputField[]" ng-model="x">
        </div>
    </div>
</form>

正如您可能已经知道的那样,childController中的模型x将遵循parentController中模型x的值,直到用户在childController输入字段中键入某个内容,因此用户可以简单地更改父输入中的值以进行批量输入然后在孩子身上微调。

现在,在用户提交表单后,我想调用相同的表单进行编辑。为了保持新项目的批量输入功能,有没有办法只在有前一个值时才能在childController中使用ng-init模型?

1 个答案:

答案 0 :(得分:1)

Haven没有尝试,但我相信你可以实现:

<div ng-init="ctrl.value && (ctrl.value=1)">

但是如果你想要一个建议,请避免像这样的ng-init和嵌套控制器:维护这个程序会很痛苦。更喜欢使用controllerAs语法(https://docs.angularjs.org/api/ng/directive/ngController)并将init逻辑放在控制器/服务上。