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中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
Oct 18 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
Aug 14 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
Jan 09 Javascript
JQuery简单实现锚点链接的平滑滚动
May 03 Javascript
jQuery实现div拖拽效果实例分析
Feb 20 Javascript
JavaScript编写九九乘法表(两种任选)
Feb 04 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
Mar 06 Javascript
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
使用jquery-easyui的布局layout写后台管理页面的代码详解
Jun 19 jQuery
js实现多张图片每隔一秒切换一张图片
Jul 29 Javascript
JS回调函数简单易懂的入门实例分析
Sep 29 Javascript
Vue+TypeScript中处理computed方式
Apr 02 Vue.js
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
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超级全局变量
2010/01/26 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
python中将字典转换成其json字符串
2014/07/16 Python
Django中使用group_by的方法
2015/05/26 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
python中的句柄操作的方法示例
2019/06/20 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
python实现图片素描效果
2020/09/26 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
艺术设计专业个人求职信范文
2013/12/11 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
医学生求职信
2014/07/01 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android