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 相关文章推荐
jQuery Tips 为AJAX回调函数传递额外参数的方法
Dec 28 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
Feb 04 Javascript
时间戳转换为时间 年月日时间的JS函数
Aug 19 Javascript
jquery统计复选框选中示例
Nov 05 Javascript
自己实现ajax封装示例分享
Apr 01 Javascript
浅谈几种常用的JS类定义方法
Jun 08 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
Jul 24 Javascript
angularjs之$timeout指令详解
Jun 13 Javascript
解决vue打包后vendor.js文件过大问题
Jul 03 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
Sep 14 Javascript
JS数组方法reverse()用法实例分析
Jan 18 Javascript
JavaScript控制台的更多功能
Apr 28 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中的stdClass类
2014/04/18 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
Python本地与全局命名空间用法实例
2015/06/16 Python
详解Python爬虫的基本写法
2016/01/08 Python
Python协程的用法和例子详解
2017/09/09 Python
python 输出上个月的月末日期实例
2018/04/11 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
如何让Java程序执行效率更高
2014/06/25 面试题
幼儿园保育员辞职信
2014/01/12 职场文书
运动会跳远广播稿
2014/02/04 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
公司业务员管理制度
2015/08/05 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书