我需要根据条件禁用AngularJS中的div。是的我可以通过在外观中使用css更改(提供低对比度和较少颜色外观)来实现它,但我有ng-click属性。所以我也需要阻止那个召唤。我该怎么办?
这是我的代码:
<div ng-repeat="item in list.items" ng-click="goToFunction()" ng-disabled="true">
答案 0 :(得分:1)
是ng-disabled对div不起作用。它将用于支持disable属性的每个html元素(例如:input)。 https://docs.angularjs.org/api/ng/directive/ngDisabled
我创建了一个简单的小提琴来演示如何使用简单的div http://jsfiddle.net/5Qc5k/1/
来实现它function MyCtrl($scope, $templateCache) {
$scope.isDisabled = false;
$scope.alertMe = function(){
if($scope.isDisabled === true){
return;
}
// disable the function
$scope.isDisabled = true;
alert("foo");
}
}
答案 1 :(得分:0)
您可以在控制器中执行此操作,即:
<div ng-repeat="item in list.items" ng-click="goToFunction(item)" ng-disabled="true">
之后在控制器中:
function goToFunction(item){
if(item.condition == disable){
return false
}
else {
// do something
}
}
答案 2 :(得分:-1)
要防止基于禁用的ng-click功能,您可以执行以下操作: -
<div ng-repeat="item in list.items" ng-disabled="item.condition" ng-click="goToFunction(item)">
item.value
</div>
$scope.goToFunction = function(item){
if(item.condition == false){
// Dont do anything
}else{
//do something
}
在这种情况下,当禁用div时,点击功能将不会执行任何操作,否则会执行任何操作。