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 相关文章推荐
用倒置滤镜把div倒置,再把table倒置。
Jul 31 Javascript
MooTools 1.2中的Drag.Move来实现拖放
Sep 15 Javascript
Javascript倒计时代码
Aug 12 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
Sep 21 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
js添加table的行和列 具体实现方法
Jul 22 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
Jul 17 Javascript
jQuery异步加载数据并添加事件示例
Aug 24 Javascript
JS实用的动画弹出层效果实例
May 05 Javascript
解决微信二次分享不显示摘要和图片的问题
Aug 18 Javascript
layui radio单选限制下一个radio单选的实例
Sep 03 Javascript
js单线程的本质 Event Loop解析
Oct 29 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
BBS(php &amp; mysql)完整版(三)
2006/10/09 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
vue之延时刷新实例
2019/11/14 Javascript
详解如何设置Python环境变量?
2019/05/13 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
高中学生评语大全
2014/04/25 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
公司股份合作协议书
2014/12/07 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python