1、@Input:可设置属性

     当它通过属性绑定的形式被绑定时,值会“流入”这个属性。

     在子组件中使用,例如:@Input()name:string

     父组件定义宾亮,并在父组件的模板中绑定,例如:

      子组件模板中:{{name}}

      子组件控制器中:@Input()name:string

      父组件控制器中:username = "Lion"

      父组件模板中:[name] = "username" (在调用的子组件的选择器中绑定)

     此时,数据即从父组件传入子组件,子组件能在本身的模板中使用改“name”变量

2、@Output:可观察对象型属性

     几乎总是返回Angular 的EventEmitter,当它通过事件绑定的形式被绑定时,值会“流出”这个属性

     在子组件中使用。例如:@Output() arriveMessage = new EventEmitter()

     子组件模板中绑定一个事件,例如按钮的点击事件(click()),在子组件控制器中定义一个被绑定到按钮点击事件的事件(message()),并在该事件中做出处理,即emit(弹射)例中的arriveMessage,在父组件的模板中绑定arriveMessage,绑定位置为子组件的选择器位置,最后 在父组件的控制器中进行事件处理(footerArriveMessage())

     例如:

     子组件模板:(click) = "message()"

     子组件控制器:@Output() arriveMessage = new EventEmitter()

            message(){

              ..............

              this.arriveMessage.emit();

            }

     父组件模板:(arriveMessage) = "footerArriveMessage()"

     父组件控制器中:footerArriveMessage(){

              进行处理

            }

3、子组件与子组件之间通过中间人模式实现通讯(需要有一个共同的父组件)

4、子组件与子组件之间通过服务来实现组件之间的通讯(没有共同父组件)

5、父组件与子组件通过本地变量互动

     在父组件的模板中使用,即在爱组件的选择器中声明一个本地变量(#变量名)例如:#name,该变量名即可代表子组件,之后可在父组件模板中调用子组件的属性和方法

     例如:

      (click) = "name.属性" 或 (click) = "name.方法"

     缺陷:

        父子组建的连接必须全部在父组件的模板中进行,在父组件的控制器中无法访问子组件的属性和方法

6、父组件调用@ViewChild()

总结:

  @Input:在子组件中使用。数据从父组件传递到子组件

  @Output:在子组件中使用。子组件的元素事件(例如:点击事件)的处理函数发射出父组件的自定义事件,触发自定义事件,父组件执行函数处理该自定义事件。

  局部变量实现数据交互:在父组件中使用。父组件在局部模板中自定义一个局部变量,形如#····。通过局部变量访问子组件的公共变量和方法。局限是只能在局部模板中使用,不能在父组件的类中对子组件的相关变量和方法进行修改。

  @ViewChild:在父组件中使用。通过此方法实现的数据交互,可以对子组件的相关变量和方法进行修改。

     

Angular学习笔记之组件之间的交互的更多相关文章

  1. Angular 学习笔记——自定义指令之间的交互

    <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <met ...

  2. Angular 学习笔记 (动态组件 & Material Overlay & Dialog 分析)

    更新: 2019-11-24  dialog vs router link refer : https://stackoverflow.com/questions/51821766/angular-m ...

  3. angular学习笔记 父子组件传值

    一.如何将父组件的值传到子组件? 在子组件里面引入Input,然后用@Input 变量1 接收 接着在父组件中的,子组件标签上添加[msg]="msg",中括号里的名字要与子组件中 ...

  4. angular学习笔记(三十)-指令(5)-link

    这篇主要介绍angular指令中的link属性: link:function(scope,iEle,iAttrs,ctrl,linker){ .... } link属性值为一个函数,这个函数有五个参数 ...

  5. angular学习笔记(三十一)-$location(2)

    之前已经介绍了$location服务的基本用法:angular学习笔记(三十一)-$location(1). 这篇是上一篇的进阶,介绍$location的配置,兼容各版本浏览器,等. *注意,这里介绍 ...

  6. angular学习笔记(三十一)-$location(1)

    本篇介绍angular中的$location服务的基本用法,下一篇介绍它的复杂的用法. $location服务的主要作用是用于获取当前url以及改变当前的url,并且存入历史记录. 一. 获取url的 ...

  7. angular学习笔记(三十)-指令(10)-require和controller

    本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...

  8. angular学习笔记(三十)-指令(7)-compile和link(2)

    继续上一篇:angular学习笔记(三十)-指令(7)-compile和link(1) 上一篇讲了compile函数的基本概念,接下来详细讲解compile和link的执行顺序. 看一段三个指令嵌套的 ...

  9. angular学习笔记(三十)-指令(7)-compile和link(1)

    这篇主要讲解指令中的compile,以及它和link的微妙的关系. link函数在之前已经讲过了,而compile函数,它和link函数是不能共存的,如果定义了compile属性又定义link属性,那 ...

随机推荐

  1. BZOJ5372: [Pkusc2018]神仙的游戏

    BZOJ5372: [Pkusc2018]神仙的游戏 https://lydsy.com/JudgeOnline/problem.php?id=5372 分析: 如果\(len\)为\(border\ ...

  2. bzoj 4817: [Sdoi2017]树点涂色 LCT+树链剖分+线段树

    题目: Bob有一棵n个点的有根树,其中1号点是根节点.Bob在每个点上涂了颜色,并且每个点上的颜色不同. 定义一条路径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色. Bob可能会进 ...

  3. [POI 2018] Plan Metra

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5100 [算法] 首先分两类考虑 : 1. 1 -> N的路径不经过其它节点 , ...

  4. 【LeetCode】137. Single Number II

    题目: Given an array of integers, every element appears three times except for one. Find that single o ...

  5. encodeURI,encodeURIComponent编码

    encodeURI().encodeURIComponent().decodeURI().decodeURIComponent() URL编码 Global对象的encodeURI()和encodeU ...

  6. python 基础 操作文件和目录

    获得当前目录路径 :os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 删除一个文件:os.remove(filename) 删除多个空目录 :os.removefir ...

  7. ParentViewController中添加SubViewController(IOS学习)

    我是用的是Container.addSubView的方法. 1. ParentViewController.m的@interface()中添加2个子vc的实例变量,代码如下 @property (no ...

  8. unreal3窗口锁定鼠标开关

    GameViewportClient中有个变量控制是否显示硬件鼠标: var transient bool bDisplayHardwareMouseCursor 也就是系统的光标,一般通过该类中的函 ...

  9. 5、bam格式转为bigwig格式

    1.Bam2bigwig(工具) https://www.researchgate.net/publication/301292288_Bam2bigwig_a_tool_to_convert_bam ...

  10. hdu1054

    /* [题意] 给定一棵树,标记一节点,则与该节点所连的边都被标记,问最少需要标记多少个节点使得所有边都被标记: 或者说给定一个树型城堡,在交叉路口放一个士兵,则与该路口相连的路都被守住, 问最少需要 ...