ng-disable在SVG元素中不起作用

时间:2018-01-05 15:41:45

标签: angularjs svg angularjs-directive angularjs-ng-disabled

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

有什么想法吗?

<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 个答案:

答案 0 :(得分:-2)

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

执行此操作
.disable {
     pointer-events: none;
     opacity: 0.5; 
 }

ng-class添加到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