使用ng-click属性禁用AngularJS中的div?

时间:2014-05-21 09:59:45

标签: html css angularjs

我需要根据条件禁用AngularJS中的div。是的我可以通过在外观中使用css更改(提供低对比度和较少颜色外观)来实现它,但我有ng-click属性。所以我也需要阻止那个召唤。我该怎么办?

这是我的代码:

<div ng-repeat="item in list.items" ng-click="goToFunction()" ng-disabled="true">

3 个答案:

答案 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时,点击功能将不会执行任何操作,否则会执行任何操作。