AngularJS中directive指令使用之事件绑定与指令交互用法示例


Posted in Javascript onNovember 22, 2016

本文实例讲述了AngularJS中directive指令使用之事件绑定与指令交互用法。分享给大家供大家参考,具体如下:

AngularJS中模板的使用,事件绑定以及指令与指令之间的交互

<!doctype html>
<html ng-app="myapp">
  <head>
    <meta charset="utf-8"/>
  </head>
  <body ng-controller="ShieldController">
    <div>
      <who></who>
    </div>
    <div>
      <button you-btn></button>
    </div>
    <theshield reigns>343</theshield>
    <theshield reigns>fdhg</theshield>
    <theshield rollins>hhh</theshield>
    <theshield ambros>kkk</theshield>
  </body>
  <script src="./js/angular.min.js"></script>
  <script>
    var app = angular.module('myapp',[]);
    /*=======================1. 模板的使用 ========================*/
    app.directive('who',function(){
      return {
        restrict:"E",       //元素element 的意思
        link:function(scope,element,attrs){
          console.log(element);
          element[0].innerHTML = 'sdfhkj'; //这个优先级别最高
        },
        //templateUrl:"param.html", //这个不显示 优先级别最低
        template:"<h1>jkdhf</h1>" //这个显示 优先级别其次
      };
    });
    /*=======================2. 事件的绑定 ========================*/
    app.directive('youBtn',function(){
      return {
        restrict:"A", //attribute 属性的意思
        link:function(scope,element,attrs){
          console.log(element);
          element[0].innerHTML = 'my btn';
          //事件绑定
          element.bind('mouseenter',function(){
            element[0].innerHTML = 'your btn';
          });
          element.bind('mouseleave',function(){
            element[0].innerHTML = 'her btn';
          });
        }
      };
    });
    /*=======================3. 元素 属性 控制器之间的交互========================*/
    app.controller('ShieldController',function($scope){
      $scope.shieldNames = [];
      this.addReigns = function(){
        $scope.shieldNames.push("reigns:jjj");
      }
      this.addRollins = function(){
        $scope.shieldNames.push("Rollins:hhh");
      }
      this.addAmbros = function(){
        $scope.shieldNames.push("Ambros:ggg");
      }
    })
    .directive('reigns',function(){
     return {
       require:"theshield",
       link:function(scope,element,attrs,ShieldController){
         ShieldController.addReigns();
       }
     };
    })
    .directive('rollins',function(){
     return {
       require:"theshield",
       link:function(scope,element,attrs,ShieldController){
         ShieldController.addRollins();
       }
     };
    })
    .directive('ambros',function(){
     return {
       require:"theshield",
       link:function(scope,element,attrs,ShieldController){
         ShieldController.addAmbros();
       }
     };
    })
    .directive('theshield',function(){
      return {
        restrict:"E",
        controller:"ShieldController", //指定控制器
        scope:{},           //清空该指令处的$scope 值
        link:function(scope,element,attrs){
          element.bind('mouseenter',function(){ //对于该指令所对应的元素绑定对应的事件
            console.log(scope.shieldNames);
          });
        }
      };
    });
  </script>
</html>

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

Javascript 相关文章推荐
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
javascript 类型判断代码分析
Mar 28 Javascript
JS实现网页上随机产生超链接地址的方法
Nov 09 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
Nov 07 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 Javascript
用js屏蔽被http劫持的浮动广告实现方法
Aug 10 Javascript
Vue实现移动端左右滑动效果的方法
Nov 27 Javascript
新手快速上手webpack4打包工具的使用详解
Jan 28 Javascript
详解关于Vuex的action传入多个参数的问题
Feb 22 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
Node.js API详解之 readline模块用法详解
May 22 Javascript
Nest.js 授权验证的方法示例
Feb 22 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
Nov 22 #Javascript
详解js中Json的语法与格式
Nov 22 #Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 #Javascript
javascript入门之string对象【新手必看】
Nov 22 #Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 #Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 #Javascript
AngularJS变量及过滤器Filter用法分析
Nov 22 #Javascript
You might like
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
js获取图片长和宽度的代码
2009/11/24 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
js中url对象化管理分析
2017/12/29 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
python统计文本文件内单词数量的方法
2015/05/30 Python
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
python unittest实现api自动化测试
2018/04/04 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
python输出决策树图形的例子
2019/08/09 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
医学检验专业大学生求职信
2013/11/18 职场文书
2014年个人委托书范本
2014/10/13 职场文书
2014年生产部工作总结
2014/12/17 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
教育读书笔记
2015/07/02 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书