angularjs $compile 重复问题

代码如下

<div id="ttt">
</div>

<script type="text/javascript">    var MetronicApp = angular.module("MetronicApp", []);

    MetronicApp.controller('AppController', ['$scope', '$compile', function ($scope,$compile) {       
     var As = $("#ttt").html("<button ng-click='ttfun()'> this click</button>");

        $compile(As.contents())($scope);
        $compile(As.contents())($scope);
        $compile(As.contents())($scope);
        $compile(As.contents())($scope);

        $scope.ttfun = function(){
            console.log("---");
        }

    }]);

</script>

以上是代码片段截取,问题是我点击按钮时 会运行 ttfun 函数 4次,就是绑定了点击事件四次,能不能配置它只能绑定一次,就是无论 $compile 运行多少次,后当点击按钮的时候只运行ttfun()一次


繁花不似锦
浏览 517回答 1
1回答

郎朗坤

不知道你为什么要这样写,不过既然你只要运行一次,可以这样var&nbsp;As&nbsp;=&nbsp;$("#ttt").html("<button&nbsp;type='button'&nbsp;&nbsp;ng-click='ttfun()'>&nbsp;this&nbsp;click</button>"); $compile(As.contents())($scope); $compile(As.contents())($scope); $compile(As.contents())($scope); $compile(As.contents())($scope);var&nbsp;running&nbsp;=&nbsp;false; $scope.ttfun&nbsp;=&nbsp;function(){&nbsp;&nbsp;&nbsp;&nbsp;if(running)&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;running&nbsp;=&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;console.log("---"); }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript