父组件给子组件传值

  1. //父组件调用子组件的时候传入数据
  2. <app-header [msg]="msg"></app-header>
  1. //子组件引入input模块
  2. import { Component, OnInit ,Input } from '@angular/core';
  1. //子组件中@Input接收父组件传过来的数据
  2. @Input() msg:string
  1. //可以传值、传方法、传整个父组件(通过this)
  2. <app-header [titlel]="title" [msg]="msg" [run]='run' [home]='this'></app-header>
  3. //子组件中通过同样的方法接收数据
  4. @Input() run:any;
  5. @Input() home: any;

父组件获取子组件数据和方法

方法一:

  1. //父组件引入Viewchild模块
  2. import { Component, OnInit,Viewchild } from 'Aangular/core";
  1. //引用子组件加#footer
  2. <app-footer #footer></app-footer>
  1. //获取子组件实例对象
  2. @Viewchild('footer) footer:any;
  3. //通过子组件实例对象调用子组件数据和方法
  4. this.footer.XXX

方法二:

  1. //子组件引入Output和EventEmitter
  2. import { Component, OnInit ,Input, Output,EventEmitter} from '@angular/core';
  1. //子组件中实例化EventEmitter
  2. @output() private outer=new EventEmitter<string>();
  1. //子组件通过 EventEmitter对象outer实例广播数据
  2. sendParent(){
  3. this.outer.emit('msg from child')
  4. }
  1. //父组件调用子组件的时候,定义接收事件, outer就是子组件的EventEmitter对象outer
  2. <app-header (outer)="runParent($event)"></app-header>
  1. //父组件接收到数据会调用自己的runParent方法,这个时候就能拿到子组件的数据
  2. runParent(e){
  3. console.1og(e);//子组件给父组件广播的数据
  4. }