• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >AngularJS > AngularJS实现给动态生成的元素绑定事件的方法

AngularJS实现给动态生成的元素绑定事件的方法

作者:小小小小小亮 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含angularjs获取元素,angularjs获取dom元素,angularjs 删除元素,angularjs 动态加载,angularjs动态添加div等相关知识,小小小小小亮 希望在学习及工作中可以帮助到您

本文实例讲述了AngularJS实现给动态生成的元素绑定事件的方法。分享给大家供大家参考,具体如下:

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

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

举例来说:

angular.module('myapp',[])
.directive('myText',function(){
  return{
    restrict:'A',
    template:'<div ng-click="hello()">Hi everyone</div>',
    link:function(scope,ele,attr){
    }
  }
})

</div>

这个指令中,会生成新的DOM节点:

<div ng-click="hello()">Hi everyone</div>

</div>

但是如果不做处理,这里的ng-click事件并不能实现,因为事件的监听在静态html页面生成时候已经完成。那么如何给动态生成的元素,绑定事件,实现事件的动态监听呢?

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

var template:'<div ng-click="hello()">Hi everyone</div>',
var content = $compile(template)(scope);

</div>

通过这两句,首先先编译DOM,然后用编译后的DOM加入到之前的静态节点中,就能实现动态绑定事件,之类注意,应该注入$compile service

.directive('myText',function($compile){})

</div>

完整的代码如下:

angular.module('myapp',[])
.directive('myText',function($compile){
  var template:'<div ng-click="hello()">Hi everyone</div>',
  return{
    restrict:'A',
    link:function(scope,ele,attr){
       ele.on("click", function() {
        scope.$apply(function() {
          var content = $compile(template)(scope);
          element.append(content);
        })
      });
    }
  }
})

</div>

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。

</div>

您可能想查找下面的文章:

  • AngularJS改变元素显示状态
  • AngularJS实现给动态生成的元素绑定事件的方法
  • AngularJS实现DOM元素的显示与隐藏功能

相关文章

  • 2017-05-30Angular的$http的ajax的请求操作(推荐)
  • 2017-05-30Angular.js基础学习之初始化
  • 2017-05-30浅谈angular懒加载的一些坑
  • 2017-05-30详解AngularJS中$filter过滤器使用(自定义过滤器)
  • 2017-05-30老生常谈angularjs中的$state.go
  • 2017-05-30AngularJS单选框及多选框实现双向动态绑定
  • 2017-05-30AngularJS 使用 UI Router 实现表单向导
  • 2017-05-30AngularJS Controller作用域
  • 2017-05-30详解AngularJS 模态对话框
  • 2017-05-30Angular.js去除页面中显示的空行方法示例

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • jquery操作angularjs对象
    • Angularjs 实现分页功能及示例代码
    • angular.fromJson与toJson方法用法示例
    • AngularJS的Filter的示例详解
    • AngularJS实现数据列表的增加、删除和上移下移等功能实例
    • AngularJS实现网站换肤实例
    • AngularJS自定义指令之复制指令实现方法
    • AngularJs 弹出模态框(model)
    • Angularjs中UI Router全攻略
    • 使用AngularJS 应用访问 Android 手机的图片库

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有