在Angular指令中单击事件处理程序两次

时间:2015-09-14 13:48:00

标签: javascript angularjs

使用点击事件创建指令,但点击两次。

stopPropagation无法帮助我

angular.module('dod').directive('checkbox', [function () {
    var checkbox = {
        restrict: 'A',
        replace: false,
        transclude: false,
        link: function (scope, elem, attrs) {
            elem.on('click', function (e) {
                elem.toggleClass('checked');
            });
        }
    };

    return checkbox;
}]);

1 个答案:

答案 0 :(得分:0)

以您展示的方式操纵DOM并不是一个好主意。它“不是一种有角度的方式”。 由于您试图切换要点击的元素,看起来您似乎从angularjs doc尝试这种方法:

<script>
  angular.module('checkboxExample', [])
    .controller('ExampleController', ['$scope', function($scope) {
      $scope.checkboxModel = {
       value1 : true,
       value2 : 'YES'
     };
    }]);
</script>
<form name="myForm" ng-controller="ExampleController">
  <label>Value1:
    <input type="checkbox" ng-model="checkboxModel.value1">
  </label><br/>
  <label>Value2:
    <input type="checkbox" ng-model="checkboxModel.value2"
           ng-true-value="'YES'" ng-false-value="'NO'">
   </label><br/>
  <tt>value1 = {{checkboxModel.value1}}</tt><br/>
  <tt>value2 = {{checkboxModel.value2}}</tt><br/>
 </form>

https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D