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 相关文章推荐
拖拉表格的JS函数
Nov 20 Javascript
jQuery简易图片放大特效示例代码
Jun 09 Javascript
浅谈Javascript中深复制
Dec 01 Javascript
使用js画图之饼图
Jan 12 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
JavaScript面向对象之私有静态变量实例分析
Jan 14 Javascript
jquery使用on绑定a标签无效 只能用live解决
Jun 02 Javascript
jquery ajaxfileupload异步上传插件使用详解
Feb 08 Javascript
详解Webpack DLL用法以及功能
Jul 11 Javascript
详解使用React全家桶搭建一个后台管理系统
Nov 04 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
使用vue.js在页面内组件监听scroll事件的方法
Sep 11 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常用的排序和查找算法
2015/08/06 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
python检测是文件还是目录的方法
2015/07/03 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
使用CSS实现弹性视频html5案例实践
2012/12/26 HTML / CSS
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
外贸员简历中的自我评价
2014/03/04 职场文书
社区居务公开实施方案
2014/03/27 职场文书
国贸专业求职信
2014/06/28 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
会议邀请函
2015/01/30 职场文书
红色影片观后感
2015/06/18 职场文书
详解Python类和对象内容
2021/06/22 Python
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python