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 相关文章推荐
ff chrome和ie下全局动态定位的异同及全局高度的取法
Jun 30 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
Sep 15 Javascript
JS实现图片平面旋转的方法
Mar 01 Javascript
AngularJS 过滤与排序详解及实例代码
Sep 14 Javascript
js 打开新页面在屏幕中间的实现方法
Nov 02 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
jquery实现自定义图片裁剪功能【推荐】
Mar 08 Javascript
javascript深拷贝的原理与实现方法分析
Apr 10 Javascript
微信小程序之发送短信倒计时功能
Aug 30 Javascript
ES6 新增的创建数组的方法(小结)
Aug 01 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
Apr 21 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
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
php计算整个目录大小的方法
2015/06/19 PHP
yii2安装详细流程
2018/05/23 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
python类的继承实例详解
2017/03/30 Python
Python实现的归并排序算法示例
2017/11/21 Python
flask中的wtforms使用方法
2018/07/21 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
python对一个数向上取整的实例方法
2020/06/18 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
会计电算化应届生自荐信
2014/02/25 职场文书
利群广告词
2014/03/20 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
法人身份证明书
2015/06/18 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android