AngularJS指令与指令之间的交互功能示例


Posted in Javascript onDecember 14, 2016

本文实例讲述了AngularJS指令与指令之间的交互功能。分享给大家供大家参考,具体如下:

前面一篇文章《AngularJS指令与控制器之间的交互功能示例》我们了解了指令与控制器之间的交互,接下来看看指令与指令之间是如何进行交互的。

1.首先来了解一下什么是独立scope

为了更好的理解独立scope,我们来看一段代码:

<div ng-controller="myController1">
    <hello></hello>
    <hello></hello>
</div>
var app=angular.module('firstApp',[]);//app模块名
  app.controller('myController1',['$scope',function($scope){
}]);
app.directive('hello',function(){
    return{
      restrict:'E',
      template:"<div><input type='text' ng-  model='username'/>{{username}}",
      replace:true
    }
})

我们定义了一个指令,并在html中调用了两次,我们发现,调用两次的结果为:使用同一个指令构建的scope共享了一个数据,结果如下,我们在一个输入框中输入数据,会改变第二个指令中的输入框

AngularJS指令与指令之间的交互功能示例

如何解决这个问题呢,我们需要给指令生成独立的scope,每次使用指令时,生成的scope都是独立的,我们只需要如此修改:

app.directive('hello',function(){
    return{
      restrict:'E',
      scope:{},
      template:"<div><input type='text' ng-model='username'/>{{username}}",
      replace:true
    }
})

结果如下:

AngularJS指令与指令之间的交互功能示例

2.指令与指令之间的交互,指令的继承

(1)首先我们定义了一个父指令,定义的方式如下:

app.directive('father',function(){
    return{
     restrict:'E',
     scope:{},
     controller:function($scope){
      this.mean1=function(){
       console.log('这是第一个方法....');
      };
      this.mean2=function(){
       console.log('这是第二个方法....');
      };
      this.mean3=function(){
       console.log('这是第三个方法....');
      }
     }
    }
});

我们注意到,指令里面也有controller,这里的controller与控制器定义过程中的不同,这里的controller指的是指令的独立scope中定义的一些方法。

(2)定义子指令,子指令中可以使用父指令中scope中的方法:

app.directive('childFirst',function(){
    require:'^father',
    link:function(scope,ele,attr,fatherCtrl){
      fatherCtrl.mean1();
    }
})

这样通过:

require:'^father'

子指令就可以继承并且使用父指令中,独立scope中的一些方法。此时我们的link函数就可以有第四个参数。

link和controller中方法的区别:

link中的方法是需要执行或者马上要执行的方法。

controller中的方法是希望暴露出来,给外部使用的一些方法。

总结:

指令之间的交互,是通过指令的controller中暴露出来的方法,给外部指令使用。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
自己的js工具 Cookie 封装
Aug 21 Javascript
用AJAX返回HTML片段中的JavaScript脚本
Jan 04 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
Jun 30 Javascript
js编写一个简单的产品放大效果代码
Jun 27 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
Vue的土著指令和自定义指令实例详解
Feb 04 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
Apr 17 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
webpack4 optimization使用总结
Nov 10 Javascript
如何检测JavaScript中的死循环示例详解
Aug 30 Javascript
AngularJS指令与控制器之间的交互功能示例
Dec 14 #Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 #Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
Dec 14 #Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
Apr 18 #Javascript
微信小程序中使元素占满整个屏幕高度实现方法
Dec 14 #Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
Dec 14 #Javascript
bootstrap modal弹出框的垂直居中
Dec 14 #Javascript
You might like
逆序二维数组插入一元素的php代码
2012/06/08 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
php eval函数一句话木马代码
2015/05/21 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
基于jQuery封装的分页组件
2017/06/26 jQuery
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
vue-router之nuxt动态路由设置的两种方法小结
2018/09/26 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
使用python绘制3维正态分布图的方法
2018/12/29 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
酒店服务实习自我鉴定
2013/09/22 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
体育教师个人工作总结
2015/02/09 职场文书
市场部岗位职责
2015/02/12 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
nginx.conf配置文件结构小结
2022/04/08 Servers