2014-10-07 33 views

回答

7

「ng-disabled」只是添加或刪除元素上的「disabled」屬性。 但是在HTML中,「禁用」div在所有方面都沒有任何效果。

所以用「ng-disabled」的方式工作,但在div上使用它是沒有意義的。

您可以將「ng-disabled」添加到字段集,儘管這會使嵌套在其中的輸入元素顯示爲禁用。

另一個解決方法可以是通過使用CSS屬性「不透明度」和「指針事件:無」來模擬禁用效果,見http://nerd.vasilis.nl/disable-html-elements-with-css-only/

+0

在問候加入CSS效果,如果你使用的引導 - 它已經爲按鈕做這個。您可以輕鬆添加自己的CSS樣式:http://plnkr.co/edit/nmBmfKC7a56iDmupqh7Z?p=preview – NoobSter 2017-02-16 20:34:45

3

有若干在HTML元素,是以「禁用」屬性實際上, DIV不是其中之一。

你可以看到什麼樣的元素採取屬性,here

這些元素接受 '禁用' ATTR:

  • 按鈕
  • 輸入
  • 選擇
  • textarea的
  • OPTGROUP
  • 選項
  • 字段集
1

「NG-禁用」的使用,如角的開發指南說,是僅針對輸入標記。

<INPUT ng-disabled=""> 
... 
</INPUT> 
+1

輸入是一個自閉標籤。 – otherDewi 2017-10-12 10:48:12

1

因此,從我收集的情況來看,您試圖在按下按鈕時禁用div嗎?否則,你可以像這樣禁用按鈕。

<div> 
<button ng-disabled="true">bbb</button> 
</div> 

但我不明白爲什麼,因爲它不能再次啓用。

3

您可以使用下一個指令:

// ************ ** // //此指令是針對所有元素的ng-disabled指令,而不僅用於按鈕 // ************************* ********** //

app.directive('disabledElement', function() { 
    return { 
     restrict: 'A', 
     scope: { 
      disabled: '@' 

     }, 
     link: function (scope, element, attrs) { 

      scope.$parent.$watch(attrs.disabledElement, function (newVal) { 

       if (newVal) 
        $(element).css('pointerEvents', 'none'); 


       else 
        $(element).css('pointerEvents', 'all'); 


      }); 

     } 

    } 
}); 

和HTML:

<div ng-click="PreviewMobile()" data-disabled-element="toolbar_lock"></div> 
+0

嘗試添加'-webkit-touch-callout:none' – oCcSking 2015-12-07 11:15:44

相關問題