我一直在寻找类似的线程,但找不到任何线程。
是否可以使用基于父变量的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>
答案 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>