2

我有一個問題,如何解決落實按鈕刷新(啓用/禁用),而不使用NG-殘疾人和NG-點擊AngularJS設置禁用/啓用按鈕,而無需使用NG-禁用和動態生成的html

NG點擊

我發送給我的指令下列配置(一個或多個按鈕)

buttonsConfig() { 
    var button1 = { 
    icon: '<i class="fa fa-check"></i>', 
    name: button, 
    actionEvent:() => { this.openConfirm(); }, 
    order: 1, 
    active: false, 
    large: true 
    } 
} 

這是我動態如何使HTML和檢查禁用/啓用按鈕的confing文件(S )

link: ng.IDirectiveLinkFn = ($scope: IActionBarScope, $element: ng.IAugmentedJQuery, $attrs: ng.IAttributes) => { 
      var navbar = this.drawActionBar($scope.config); 

      var padder = angular.element('<div id="padder" ng-if="action.isOpen"></div>'); 
      this.$compile(navbar)($scope); 
      this.$compile(padder)($scope); 

      $element.append(navbar, padder); 
       } 

     setupButtonActions(element: ng.IAugmentedJQuery, config) { 
      if (config.actionEvent != null) { 
       if (config.active === false) { //skip undefined or true 
        element.addClass("disabled"); 
       } else { 
        element.removeClass("disabled"); 
        element.mouseup(config.actionEvent); 
       } 
      } 
     } 
在我的指令

我生成html按鈕(小/大)的動態HTML格(CSS),所以我不知道如何綁定該按鈕啓用/禁用。

之前用我的指令我用:

<button ng-if="!ctrl.isReadOnly" type="submit" class="btn btn-flat btn-primary" ng-disabled="!ctrl.selectedAreReady()" ng-click="ctrl.openConfirm()"><i class="fa fa-check"></i> {{'button' | translate}}</button> 

,並全部完成,以html靜態,無需編碼,所以我通過NG-禁用= ctrl.selectedAreReady() sended的按鈕啓用或不啓用。

檢查之前(disabeled按鈕) enter image description here

檢查(按鈕被激活)後 enter image description here

+0

爲什麼你不希望使用'NG-disabled'啓用按鈕? –

+0

,因爲我通過我的數據throut配置文件在我的指令,所以有幾個按鈕,我想設置像ng禁用按鈕,但不起作用 – Andrej

回答

0

如果你不想NG-禁用,您可以使用JavaScript相關的API。

document.getElementById("myBtn").disabled = true; 

你可以將其設置爲如果你想回來

+3

你永遠不應該像這樣混合Angular和Javascript/JQuery。 – Darren

+0

爲什麼我們不應該混合角和JavaScript? –

+0

這不是混合角和Javascript的問題 - 角*爲*的Javascript畢竟。但是,角預計有超過DOM控制 - 直接DOM操作,如上述將角每次範圍數據的變化被覆蓋。 –