javascript - 对父变量禁用 ng
问题描述
我一直在寻找类似的线程,但找不到。ng-disabled
是否可以使用基于父变量的angularJS 指令禁用按钮?
我已经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"
但是有没有办法一次性完成,而不是在子控制器中创建一个新变量?
解决方案
使用控制器作为语法,我们可以使用相应的控制器对象并检索任何属性值。
不需要 $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>
推荐阅读
- symfony - 使用 EntityType 显示选择时,无法从 Symfony 表单中保存实体
- javascript - 在 selenium python 中单击滑块按钮
- node.js - 让用户将 iframe 添加到他们的个人资料的常用方法?
- ruby-on-rails - 复选框不会显示在网页上,但不会出现错误
- c++ - 将常量指针推送到 std::stack
给出编译错误 - angular - 素数树表选择未按预期工作
- java - JavaFX 折线图点操作
- python - ELMo 嵌入层与 Keras
- angular - 有没有办法使用 Angular 2 在一个 HTTP 请求中发送多个标头?
- javascript - window.location 然后 window.alert (立即关闭)(以避免在白屏时发出警报)