Javascript Angular Js:如何有条件地禁用所有按钮和链接?
我在控制器中有一个条件。如果条件返回true,则我必须禁用所有链接并单击Javascript Angular Js:如何有条件地禁用所有按钮和链接?,javascript,angularjs,Javascript,Angularjs,我在控制器中有一个条件。如果条件返回true,则我必须禁用所有链接并单击ngs 我们如何做: Controller : $scope.disableActions = true; 在HTML中 <button type="button" ng-click="ignoreAndRedisplay()" ng-disabled="disableActions">OpenClick</button> OpenClick 因此,通过这样做,我必须在任何地方编写ng disa
ng
s
我们如何做:
Controller : $scope.disableActions = true;
在HTML中
<button type="button" ng-click="ignoreAndRedisplay()" ng-disabled="disableActions">OpenClick</button>
OpenClick
因此,通过这样做,我必须在任何地方编写
ng disabled=“disableActions”
,这将是多余的,我们如何改进按钮和链接的数量 ng禁用
这是正确的方法。这是不是多余的
如果你有n个链接和按钮,那么就用这个坏习惯
使用
$watch('disableAction',function(value){
if(value==true){
//use a selector here to select all your a and button elts and add a
//disabled="disabled" attribute.
}
else {
// remove that disabled attribute
}
});
您可以尝试创建自己的指令,但是
ng disabled
是正确的方法,正如JinsPeter所说是的,在编写这些按钮时,您必须在任何地方编写ng disabled
,因此这是正确的方法。它是否冗余。ng disabled
最好<代码>$scope.disableActions
可以使用多个位置并影响所有位置
OpenClick
第二次点击
第三次点击
启用/禁用
对于这种情况,我建议您做的是,只需将所有按钮放在单个字段集
中,并在该字段集
上应用ng disabled
,如果ng disabled
表达式的计算结果为true
<fieldset ng-disabled="disableActions">
<button type="button" ng-click="ignoreAndRedisplay()">OpenClick</button>
<button type="button" >Some Other button</button>
<button type="button" >One more button</button>
...
</fieldset>
在所有链接上禁用
ng
会降低性能问题,但这是正确的方法。但是,如果您不想对UI进行一些更改,可以在控制器中进行
$scope.ignoreAndRedisplay = function () {
if ($scope.disableActions) return;
// your code here
}
那是开箱即用的+1:)@PankajParkar它适用于除内部元素之外的所有元素tag@RaviUbana你这么说是什么意思,能不能请你创造一个plunker或什么的?是的@PankajParkar请看一看@RaviUbana你不了解核心问题。。无法禁用定位标记。。那么fieldset如何为您做到这一点,您需要做一些手工工作。。您可以为相同的
字段集[disabled]a{pointer events:none;}
添加CSS规则,以解决您的问题。。
$scope.ignoreAndRedisplay = function () {
if ($scope.disableActions) return;
// your code here
}