Кнопка Enable/Disable от контроллера на Angularjs

У меня есть кнопка HTML, как показано ниже,

<button ng-class="{'primaryButton':true}" type="button" id="modalCreateBtn" "ng-hide="false" class="btn btn-group mm-btn-save primaryButton" ng-click="addSegments()">CREATE</button>

В приведенной выше опции кнопки нет опции ng-disable. Возможно ли включить/отключить кнопку с кнопкой на контроллере? Кроме того, я не хочу добавлять параметр отключить в HTML-виде. Вместо этого я хочу контролировать это через скрипты. Возможно ли это?

Ответы

Ответ 1

Вы просмотрели ngDisable? У вас может быть ngModel и изменить его с контроллера. Как и в примере с документацией:

<span  ng-controller="MyController as myController">
  <label>Click me to toggle: <input type="checkbox" ng-model="myController.checked"></label><br/>
  <button ng-model="button" ng-disabled="myController.checked">Button</button>
</span>

И JS:

angular.module('controllerAsExample', [])
  .controller('MyController ', function(){
      this.checked = false;
 //   this.checked = true;
  });

Ответ 2

Использование ng-disabled - это лучшая практика включения/выключения кнопки, но вы также можете достичь ее в контроллере, не добавляя свойство disabled к вашему HTML-представлению с помощью этих скриптов,

angular.element(document.getElementById('yourButtonId'))[0].disabled = true;

В вашем случае

angular.element(document.getElementById('modalCreateBtn'))[0].disabled = true;

Plunker

Надеюсь, это поможет!

Ответ 3

Вы пробовали использовать нг-если?

Контроллер:

$scope.setUploadMode = function (stats) {
    if (stats == 4) {

        $scope.selectMe = false;

    } else { alert("No"); $scope.selectMe = true;  }
};

$scope.hello = function () {
    alert("YEY");
};

HTML:

div class="radio">
<label>
    <input type="radio" name="appendCreateMode" ng-disabled="uploadMode != 2" ng-click="setUploadMode(4)" />Append Folder
</label>
</div>
<button ng-model="button" ng-disabled="selectMe" ng-click="hello()">Button</button