使用角度js控制器

时间:2018-01-22 07:50:54

标签: javascript angularjs

我有几个按钮btn-danger。我需要使用条件禁用这些按钮。

我的控制器包含以下代码:

if($scope.valuess == 1134){
    document.getElementsByClassName("btn-danger").disabled = true;
}

但它显示错误。请帮帮我。

我有很多相同类的页面。因此无法对按钮格式进行更改。我正在寻找控制器页面中的解决方案..

5 个答案:

答案 0 :(得分:3)

您可以使用id name 1 test1 2 test2 禁用该按钮。

ng-disabled

了解更多详情:ng-disabled

<button ng-disabled="checked">Button</button>

答案 1 :(得分:0)

也许,getElementsByClassName返回一个元素数组,你需要迭代它们并为每个元素分别设置disabled = true。

答案 2 :(得分:0)

有关更多信息,您无需使用id或类来处理元素,只需要一个灵活的模型来覆盖控制器和视图之间的内容。

  

您也可以直接在视图中使用条件

&#13;
&#13;
var app = angular.module("app", []);


app.controller("ctrl", function($scope){
  var value = 1134;
  $scope.value = 55;
  $scope.disabled = value == 1134 ? true : false;
  $scope.items = [{style:'btn-danger', disable: true},{style:'btn-success', disable: false}]
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


<div ng-app="app" ng-controller="ctrl">
  <button ng-disabled="disabled">button 1</button>
  <button ng-disabled="value == 55 ? true : false">button 2</button>
  <button>button 3</button>
  
  <hr>
  <h5>forEach</h5>
  <button ng-repeat="item in items" ng-class="item.style" ng-disabled="item.disable">button {{$index}}</button>
  
</div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您可以轻松管理,简单地将add ng-disable连接到范围内的变量。

<button ng-model="button" ng-disabled="myBooleanVariable">Button</button>
控制器上的

定义变量

angular.module('controllerAsExample', [])
  .controller('MyController ', ['$scope', function($scope) {
      $scope.myBooleanVariable = true;

  }]);
在你的控制器之后

您可以禁用或启用按钮

if($scope.valuess == 1134){
  myBooleanVariable = false
}

另一种快速解决方案可以 这个

<button ng-model="button" ng-disabled="values == 1134">Button</button>

答案 4 :(得分:-1)

即使您获取了0或1个元素,

HTMLElement.getElementsByClassName()也会返回一个列表。意味着[].disabled正在向您抛出错误。

如果你的目标是设置disabled属性的所有元素,你可以这样做

if($scope.valuess == 1134){
    document.getElementsByClassName("btn-danger").forEach((e) => {
        e.setAttribute('disabled', true);
    }
}

您也可以使用ng-disabled指令

<button ng-disabled="angularjsExpression"></button>