簡體   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