1

假设我有以下简短的输入表单:

<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 输入字段中输入内容,因此用户可以简单地更改 parent 中的值以进行批量输入,然后进行微调在孩子。

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

4

1 回答 1

1

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

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

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

于 2015-04-17T03:22:12.500 回答