2014-10-07 27 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

相关问题