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 相关文章推荐
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
利用bootstrapValidator验证UEditor
Sep 14 Javascript
原生JS实现幻灯片
Feb 22 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
Feb 28 Javascript
微信、QQ、微博、Safari中使用js唤起App
Jan 24 Javascript
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 Javascript
vue-content-loader内容加载器的使用方法
Aug 05 Javascript
一些你可能不熟悉的JS知识点总结
Mar 15 Javascript
详解javascript中var与ES6规范中let、const区别与用法
Jan 11 Javascript
vue输入框使用模糊搜索功能的实现代码
May 26 Javascript
JavaScript文档对象模型DOM
Nov 20 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中,文件上传
2006/12/06 PHP
php防止sql注入简单分析
2015/03/18 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
php修改数组键名的方法示例
2017/04/15 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
javascript getElementsByName()的用法说明
2009/07/31 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
python使用正则筛选信用卡
2019/01/27 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
什么是设计模式
2012/06/17 面试题
int和Integer有什么区别
2013/05/25 面试题
大学毕业感言50字
2014/02/07 职场文书
高级工程师英文求职信
2014/03/19 职场文书
青年教师个人总结
2015/02/11 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android