javascript - 如何让 Angular JS ng-init 仅在特定条件下进行?

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

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

最佳答案

还没有尝试过,但我相信你可以通过以下方式实现:

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

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

关于javascript - 如何让 Angular JS ng-init 仅在特定条件下进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29689229/

相关文章:

Javascript HAML 引擎

javascript - 全局安装 Sails.js 出现依赖错误

javascript - 如何像 Firefox 那样修复子像素错误?

javascript - NG-包含 : access child models

javascript - AngularJS 在对话框取消时恢复嵌套在 ng-repeat 中的控件的选定值

JavaScript xlsx 文件上传

javascript - 错误: $injector:unpr Unknown Provider Angular

javascript - Karma 启动器 HTML5 API

javascript - ngOptions 中的重复项

javascript - 当使用angularjs,ngInit加载 View 时初始化范围值的正确方法?