angularjs – 如何动态添加ng-click处理程序
发布时间:2020-12-17 17:53:57 所属栏目:安全 来源:网络整理
导读:我尝试在(动态)之前生成的按钮上添加ng-click,但效果不佳.此外,我已尝试在此论坛上找到的所有解决方案,没有人运作良好. 我的HTML代码: body class="max_height" ng-app="myApp" div class="container max_height" ng-controller="myCtrl" div id="play" tab
我尝试在(动态)之前生成的按钮上添加ng-click,但效果不佳.此外,我已尝试在此论坛上找到的所有解决方案,没有人运作良好.
我的HTML代码: <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将执行数百次. 请给我一个解决方案.哪里出错了. 解决方法
问题出在这行代码中:
$compile(generated)($scope); 相反它应该是: $compile(generated.contents())($scope); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – Identity Server 4和docker
- angularjs – 如何从表达式输出HTML unicode字符
- [后端人员耍前端系列]KnockoutJs篇:使用KnockoutJs+Bootst
- Bootstrap V3使用Tab标签
- angularjs – 当Angular不可用时,如何使用Protractor看到元
- Bootstrap简单HelloWorld入门教程
- 我们应该停止使用@View注释并仅在Angular 2组件中使用@Comp
- WebService介绍
- angularjs – 如何在使用cellTemplate时启用cellTooltips?
- 基于Bootstrap3制作响应式布局网站(四)