6 Angular组件间通讯

6.1 父传子

6.1.1 父组件给子组件传值

1)父组件调用子组件的时候传入数据

<app-header [msg]="msg"></app-header>

2)子组件引入 Input 模块

        import { Component, OnInit ,Input } from '@angular/core';

3)子组件中 @Input 接收父组件传过来的数据

export class HeaderComponent implements OnInit {
    @Input() msg:string
    constructor() { }
        ngOnInit() {
    }
}

4)子组件中使用父组件的数据

 <h2>这是头部组件--{{msg}}</h2>

6.1.2 父组件给子组件传方法

1) 父组件调用子组件时传入方法

<app-header  [run]=”run”></app-header>

2) 子组件引入 Input 模块

  import { Component, OnInit ,Input } from '@angular/core';

3) 子组件接收父组件传来的方法 @Input run:any;
4) 子组件中使用父组件的方法 this.run()

6.1.3 整个父组件传给子组件

  1. <app-header [home]=”this”></app-header>
  2. 调用 this.home.msg

6.2 子传父

6.2.1 子组件通过ViewChild给父组件传值

方法同5.3

6.2.2 子组件通过@Output 给父组件传值

  1. 子组件引入 Output 和 EventEmitter
 import { Component, OnInit ,Input,Output,EventEmitter} from '@angular/core';
  1. 子组件中实例化 EventEmitter
@Output() private ourter = new EventEmitter()
  1. 子组件通过 EventEmitter 对象 outer 实例广播数据
this.ourter.emit(this.msg);
  1. 父组件调用子组件时,定义接收事件outer就是子组件定义的outer
<app-header (outer)=”runParent($event)”></app-header>
  1. 父组件调用自己的runParent()方法接收子组件传来的数据
runParent(e){  alert(e)  }

6.3 非父子组件传值

1) 公共服务的LocalStorage(推荐)
2) 服务 (参照 4 创建服务)
3) Cookie

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Angular介绍 Angular安装、创建项目、目录结构、组件、服务 创建组件、绑定数据、绑定属性、数据循环、条...
    地瓜粉丝阅读 3,555评论 0 2
  • 好长时间没有更新文章了,无意中看到知乎上的大牛说自己用angular完成私活项目,一周写了一千多个页面,感到很是震...
    thisDong阅读 3,258评论 0 2
  • 一、安装最新版本的 nodejs 注意:请先在终端/控制台窗口中运行命令 node -v 和 npm -v, 来验...
    liuguangsen阅读 6,495评论 0 1
  • 因工作需要学习angular ,特此总结一下~ 一、angular安装 1、安装前准备工作:1.1、安装 node...
    johnnie_wang阅读 4,402评论 1 3
  • 过得真快,转眼又快到期末考试了。刚才在群里因为时间关系大致浏览了一下武校关于期末考试来临,家长应该怎么办?...
    云熙_365c阅读 1,560评论 0 1