javascript - Angular JS : Why is my click event firing twice?

标签 javascript angularjs

我有以下代码。它遍历 JSON 以生成嵌套的 ul 列表。我有一个执行绑定(bind)到 anchor 标记的函数 toggleNav() 的单击事件。不知道为什么click事件会两次绑定(bind)到元素上。我也是 Angular 的新手,有没有解释这个概念的文档?谢谢!

define([
'/assets/angularapp/AppDirectives.js',
'highstock'
], function (directives) {
directives.directive('collection', function () {
    return {
        restrict: "E",    //declare by element
        replace: true,
        scope: {
            collection: '='
        },
        template: "<ul class=\"nav nav-list tree\"><member ng-repeat=\"member in collection\" member=\"member\"></member></ul>"
    }
})

directives.directive('member', function ($compile) {

    return {
        restrict: "E",
        replace: true,
        scope: {
            member: '='
        },
        template: "<li ng-show=\"member.open\"><span><input type=\"checkbox\" ng-model=\"member.selected\" class=\"sideChkbox\"><a class=\"tree-toggle\" ng-click=\"toggleNav()\"><i class=\"icon-chevron-right\"></i>{{member.data}}</a></span></li>",
        controller: function($scope, $element){
            $scope.toggleNav = function(){
                angular.forEach($scope.member.children,function(child,key){
                    if(child.open==true){
                        alert("a")
                        child.open=false;
                    } else {
                        child.open=true;
                        alert("b")

                    }

                })

            }
        },
        link: function (scope, element, attrs) {
            if (angular.isArray(scope.member.children)) {
                 element.append("<collection collection='member.children'></collection>");
                $compile(element.contents())(scope)
            }
        }
    }
})

最佳答案

关于javascript - Angular JS : Why is my click event firing twice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325081/

相关文章:

javascript - 如何在没有任何 html 标签关联的情况下使用 ng-show

javascript - 为什么 Edge 中的 sessionStorage 与 Firefox/Chrome 不同,我该如何更改?

JavaScript prototype.init 疯狂

javascript - Google Analytics 在 iOS 应用程序的 Webview 中不起作用

javascript - 获取数组中最多数量的严格均匀间隔的元素,最多可达 'N'

javascript - 获取 JSON 字符串值的最佳方法是什么?

javascript - 使用所有对象属性键的 AngularJS ng-options

需要 Angularjs Ui 网格分组格式

jquery - 当 ng-model 更新时,AngularJS $scope 不会更新

javascript - Angular ngOptions 切片或椭圆