Angularjs 即使条件中的值发生变化,使用ng disabled按钮仍处于禁用状态
我有一个按钮:Angularjs 即使条件中的值发生变化,使用ng disabled按钮仍处于禁用状态,angularjs,angularjs-ng-disabled,Angularjs,Angularjs Ng Disabled,我有一个按钮: <button ng-disabled="ctrl.myService.getData().someProperty ? '' : 'disabled'"> Click me! </button> 点击我! 当应用程序加载someProperty时,ctrl.myService.getData()上不存在。因此,该按钮被禁用 但是几秒钟后,someProperty被设置为启用ctrl.myService.getData()但是我的按钮仍然被禁用。
<button ng-disabled="ctrl.myService.getData().someProperty ? '' : 'disabled'">
Click me!
</button>
点击我!
当应用程序加载someProperty
时,ctrl.myService.getData()
上不存在。因此,该按钮被禁用
但是几秒钟后,
someProperty
被设置为启用ctrl.myService.getData()
但是我的按钮仍然被禁用。。知道为什么不基于新属性启用按钮吗?应该是这样的:
在控制器中:
<script>
app.controller("myCtrl", function($scope) {
$scope.is_disabled = ctrl.myService.getData().someProperty;
});
</script>
app.controller(“myCtrl”,函数($scope){
$scope.is_disabled=ctrl.myService.getData().someProperty;
});
在Html中:
<button ng-disabled="is_disabled ? false : true">
Click me!
</button>
点击我!
另外,请确保在方法执行结束时调用$scope.apply(),以便它可以应用必要的更改您必须使用布尔运算符触发禁用ng。使用true
或false
检查可能的重复项看不到任何差异,这是因为您必须在控制器中设置值。虽然check ctrl.myService.getData()可能没有ResolvedSing true或false,但该值仍然没有更改。。它始终保持原始状态,即禁用