在父变量上禁用ng

时间:2018-08-22 11:58:57

标签: javascript html angularjs

我一直在寻找类似的线程,但找不到任何线程。 是否可以使用基于父变量的angularJS ng-disabled指令来禁用按钮?

我已经在父控制器中定义了vm.disableSave = true,并且我正在尝试基于$scope.$parent.vm.disableSave在子控制器上禁用保存按钮。没用目前我正在尝试

<button type="button" ng-disabled="$scope.$parent.vm.disableSave" ng-click="vm.submit()" 
                      class="btn btn-primary submit-button top5">Save</button>

我知道我可以在子控制器中执行类似vm.disableSave = $scope.$parent.vm.disableSave的操作,然后再执行ng-disabled = "vm.disableSave",但是有一种方法可以一次性完成,而不是在子控制器中创建新变量吗? / p>

1 个答案:

答案 0 :(得分:0)

使用controller作为语法,我们可以使用相应的controller对象并检索任何属性值。

  

不需要$ parent属性。无论您在其中有多深   嵌套的层次结构。您可以轻松获取任何控制器对象属性   值。

请参见下面的代码

angular.module('app',[])

.controller('parentCtrl',function(){
  var vm = this;
  vm.disableSave = true
})

.controller('childCtrl',function(){
  var vm = this;
})
<html ng-app="app">
 <body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="parentCtrl as parent">
  <div ng-controller="childCtrl as child">
    <button type="button" ng-disabled="parent.disableSave" ng-click="vm.submit()" 
    class="btn btn-primary submit-button top5">Save</button>
  </div>
</div>
  </body>
 </html>