繁体   English   中英

Angular指令中的Click事件处理程序被调用了两次

[英]Click event handler in Angular directive called twice

创建带有点击事件的点击指令,但点击两次。

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;
}]);

用DOM进行操作并不是一个好主意。 这不是“有角度的方式”。 由于您尝试切换要单击的元素,因此您可以尝试从angularjs文档中尝试以下方法:

<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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM