代码之家  ›  专栏  ›  技术社区  ›  vale007

ng disable在SVG元素中不起作用

  •  -1
  • vale007  · 技术社区  · 6 年前

    我正在研究angularjs指令,其中一个圆形元素一旦被单击,就需要被禁用。 ng click事件按预期工作,但ng disable不工作。我可以看到html中添加了禁用的类,但仍会触发clicking事件。

    有什么想法吗?

    <svg width="100" height="100">
          <circle ng-disabled="disableme" ng-click="clickme()" ng-init="count=0" cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
        </svg>
    
    app.controller('MainCtrl', function($scope) {
      $scope.name = 'World';
      $scope.clickme = function () {
        $scope.count=$scope.count+1;
        $scope.disableme = true;
      };
    

    http://plnkr.co/edit/dK07QfKoA9qOrNsdlypE?p=preview

    1 回复  |  直到 6 年前
        1
  •  -1
  •   Sachila Ranawaka    6 年前

    ng-disabled 不适用于svg。或者,您可以使用 ng-class

    .disable {
         pointer-events: none;
         opacity: 0.5; 
     }
    

    添加 ng类 svg 要素

     <svg width="100" height="100"  ng-class="{'disable': disableme}">
          <circle ng-click="clickme()" ng-init="count=0" cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
        </svg>
    

    Demo