我是角度js的新手,我需要清楚一些关于角度js的事情。 这是我的示例代码
<body ng-app="radioExample">
<script>
angular.module('radioExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.color = 'blue';
$scope.disabled = false;
if($scope.color == 'red'){
$scope.disabled = true;
}
}]);
</script>
<form name="myForm" ng-controller="ExampleController">
<input type="radio" ng-model="color" value="red" > Red <br/>
<input type="radio" ng-model="color" value="green"> Green <br/>
<input type="radio" ng-model="color" value="blue"> Blue <br/>
<tt>color = {{color | json}}</tt><br/>
<tt>{{disabled}}</tt><br/>
</form>
</body>
当我选择“红色”按钮时,它是不是像我在$scope.disabled
声明中提到的那样将true
的值更新为if
?当我需要这样做时,我该如何实现呢?
答案 0 :(得分:1)
简单的解决方案是将“禁用”定义为函数,以便角度在每个摘要周期中重新计算。
$scope.disabled = function() { return $scope.color === 'red'; }
稍后使用
<tt>{{disabled()}}</tt>
如果您不希望disabled
成为某项功能。在color
上添加一个监视并更新已禁用的值。
$scope.$watch('color', function(){
$scope.disabled = ($scope.color === 'red');
})
答案 1 :(得分:0)
没有它赢了,你可以尝试使用ng-change listener并分配范围
<body ng-app="radioExample">
<script>
angular.module('radioExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.color = 'blue';
$scope.disabled = false;
$scope.foo = function(){
if ($scope.color === 'red'){
$scope.disabled = true;
}
}
}]);
</script>
<form name="myForm" ng-controller="ExampleController">
<input type="radio" ng-model="color" value="red" ng-change="foo()" > Red <br/>
<input type="radio" ng-model="color" value="green" ng-change="foo()"> Green <br/>
<input type="radio" ng-model="color" value="blue" ng-change="foo()"> Blue <br/>
<tt>color = {{color | json}}</tt><br/>
<tt>{{disabled}}</tt><br/>
</form>
</body>