• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > Angularjs 动态添加指令并绑定事件的方法

Angularjs 动态添加指令并绑定事件的方法

作者:彼岸花在开 字体:[增加 减小] 来源:互联网 时间:2017-05-11

彼岸花在开通过本文主要向大家介绍了angularjs自定义指令,angularjs指令,angularjs指令大全,angularjs内置指令,angularjs中的指令等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

这两天学习了angularjs 感觉指令这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记。

先说使用场景,动态生成DOM元素并绑定事件,非常常见的一种场景,用jq实现效果:

var count=0;
$("#test").on("click",function(event){
 if(event.target.tagName.toLowerCase()=="input") return;
 count++;
 var html="<input type='text' class='newEle' value='"+count+"'/>";
 $(this).html(html);
 $(".newEle").focus();
});
$("body").on("blur",".newEle",function(){
 alert($(this).val());
})
</div>

如果用angularjs应该怎么实现呢?想当然的情况是这样的:

var myApp = angular.module('myApp', []);
    myApp.controller('MainCtrl', ['$scope','$compile',function($scope) {
      $scope.count = 0;
      $scope.add = function() {
       if(event.target.tagName.toLowerCase()=="input")return;
        var target=$(event.target);
        $scope.count++;
        target.html("<input value='"+$scope.count+"' ng-blur='showValue()'>" );
      }
      $scope.showValue=function(){
        alert(event.target.value)
      }
    }])
</div>

理想很丰满,点击test的时候内容确实变成了input,但是input不能绑定任何ng事件。

var myApp = angular.module('myApp', []);
    myApp.controller('MainCtrl', ['$scope','$compile',function($scope, $compile) {
      $scope.count = 0;
      $scope.add = function() {
       if(event.target.tagName.toLowerCase()=="input")return;
        var target=$(event.target);
        $scope.count++;
        target.html($compile("<input value='"+$scope.count+"' ng-blur='showValue()'>")($scope));
      }
      $scope.showValue=function(){
        alert(event.target.value)
      }
    }])
</div>

达到目的~

这里用到了$compile服务,官方的解释是compile可以将一个HTML字符串或者DOM编译成模板,该模板能够与scope链接起来,也就是说直接插入一段html片段到页面中,虽然能插入进去,但是angular并没有编译,所以任何ng事件指令绑定都是无效的,通过compile能够将html片段先编译后再插入。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

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

  • angularjs指令之绑定策略(@、=、&)
  • 详解angularJs指令的3种绑定策略
  • Angularjs 动态添加指令并绑定事件的方法
  • 详解Angularjs 如何自定义Img的ng-load 事件
  • Angularjs自定义指令实现三级联动 选择地理位置
  • angularJS 指令封装回到顶部示例详解
  • AngularJS的ng-repeat指令与scope继承关系实例详解
  • AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
  • AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
  • AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法

相关文章

  • 2017-09-04函数中的this指向,以及 修改this指向的 call/apply/bind方法
  • 2017-05-11jQuery实现最简单实用的分秒倒计时
  • 2017-05-11jQuery源码分析之init的详细介绍
  • 2017-05-11详解Javascript几种跨域方式总结
  • 2017-05-11JavaScript数据结构之二叉树的遍历算法示例
  • 2017-05-11进阶之初探nodeJS
  • 2017-05-11js仿QQ邮箱收件人选择与搜索功能
  • 2017-05-11JS优化与惰性载入函数实例分析
  • 2017-05-11JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
  • 2017-05-11Vue指令的钩子函数使用方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • JavaScript中 this 指向问题深度解析
    • JavaScript使用简单正则表达式的数据验证功能示例
    • javascript监听页面刷新和页面关闭事件方法详解
    • js实现百度搜索提示框
    • 使用BootStrap进行轮播图的制作
    • js正则表达式验证表单【完整版】
    • Angular 4.x 动态创建表单实例
    • 详解Node.js串行化流程控制
    • vue.js利用defineProperty实现数据的双向绑定
    • JS使用正则截取两个字符串之间的字符串实现方法详解

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

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