<body class="max_height" ng-app="myApp"> <div class="container max_height" ng-controller="myCtrl"> <div id="play" tabindex="0" ng-init="init()" ng-keydown="keyDown($event)"> {{ content }} </div> </div> <script src="js/angular.min.js"></script> <script src="js/script.js"></script> </body>
我的AngularJS代码:
var app = angular.module("myApp",[]); app.controller("myCtrl",function($scope,$compile) { $scope.init = function() { var el = '<button class="btn" id="start" data-ng-click="startAnimation()">Start</buttom>'; var element = angular.element(document.querySelector('#play')); var generated = element.html(el); $compile(generated)($scope); } $scope.startAnimation = function(){ console.log("click"); } });
我的错误是“RangeError:超出最大调用堆栈大小”,这是由$compile(生成)($scope)生成的; .从第一个问题派生出来的另一个问题是,如果我单击按钮,那么函数startAnimation将执行数百次.
请给我一个解决方案.哪里出错了.