博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS动态生成绑定事件
阅读量:6349 次
发布时间:2019-06-22

本文共 1189 字,大约阅读时间需要 3 分钟。

hot3.png

1 . 我们知道在中,动态生成一个元素,如果要在动态生成元素的同时,动态绑定事件,可以通过live/on方法(在jquery3.0中已经废除了bind方法)。 

2 . 在中,操作DOM一般在指令中完成,事件监听机制是在对于已经静态生成的dom绑定事件,而如果在指令中动态生成了DOM节点,动态生成的节点不会被JS事件监听。

举例来说:

angular.module('myapp',[]).directive('myText',function(){    return{        restrict:'A',        template:'
Hi everyone
', link:function(scope,ele,attr){ } }})
  • 这个指令中,会生成新的DOM节点:
Hi everyone
  • 但是如果不做处理,这里的ng-click事件并不能实现,因为事件的监听在静态html页面生成时候已经完成。那么如何给动态生成的元素,绑定事件,实现事件的动态监听呢?

3 . 通过$compile服务,编译DOM,实现动态的事件绑定

var template:'
Hi everyone
',var content = $compile(template)(scope);
  • 通过这两句,首先先编译DOM,然后用编译后的DOM加入到之前的静态节点中,就能实现动态绑定事件,之类注意,应该注入$compile service
.directive('myText',function($compile){})
  • 完整的代码如下:
angular.module('myapp',[]).directive('myText',function($compile){    var template:'
Hi everyone
', return{ restrict:'A', link:function(scope,ele,attr){ ele.on("click", function() { scope.$apply(function() { var content = $compile(template)(scope); element.append(content); }) }); } }})
  •  

转载于:https://my.oschina.net/u/2391658/blog/859761

你可能感兴趣的文章
算法导论(Introduction to Algorithms )— 第十二章 二叉搜索树— 12.1 什么是二叉搜索树...
查看>>
专题开发十二:JEECG微云高速开发平台-基础用户权限
查看>>
Dubbo(二) -- Simple Monitor
查看>>
java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
查看>>
给软工大二学生:用行动開始改变
查看>>
WinForm 窗口缩放动画效果
查看>>
2015年终总结
查看>>
Java 封装 HDFS API 操作
查看>>
复习C#的方法Math.Max和Math.Min
查看>>
做中学之教与学工具箱
查看>>
vue2.0 常用的 UI 库
查看>>
Chrome内核保存为mhtml(单网页)
查看>>
SQL Server-聚焦ROW_NUMBER VS TOP N性能
查看>>
011-Shell 文件包含
查看>>
css3-3 css3背景样式
查看>>
《无人驾驶》—— 读书总结
查看>>
java虚拟机内存不足,“Could not create the Java Virtual Machine”问题解决方案
查看>>
maven仓库中心mirrors配置多个下载中心(执行最快的镜像)
查看>>
.NET redis cluster
查看>>
[DotNet]利用反射自动将Web前台传递的数据初始化到对象中
查看>>