父组件给子组件传值
//父组件调用子组件的时候传入数据<app-header [msg]="msg"></app-header>
//子组件引入input模块import { Component, OnInit ,Input } from '@angular/core';
//子组件中@Input接收父组件传过来的数据@Input() msg:string
//可以传值、传方法、传整个父组件(通过this)<app-header [titlel]="title" [msg]="msg" [run]='run' [home]='this'></app-header>//子组件中通过同样的方法接收数据@Input() run:any;@Input() home: any;
父组件获取子组件数据和方法
方法一:
//父组件引入Viewchild模块import { Component, OnInit,Viewchild } from 'Aangular/core";
//引用子组件加#footer<app-footer #footer></app-footer>
//获取子组件实例对象@Viewchild('footer) footer:any;//通过子组件实例对象调用子组件数据和方法this.footer.XXX
方法二:
//子组件引入Output和EventEmitterimport { Component, OnInit ,Input, Output,EventEmitter} from '@angular/core';
//子组件中实例化EventEmitter@output() private outer=new EventEmitter<string>();
//子组件通过 EventEmitter对象outer实例广播数据sendParent(){ this.outer.emit('msg from child')}
//父组件调用子组件的时候,定义接收事件, outer就是子组件的EventEmitter对象outer<app-header (outer)="runParent($event)"></app-header>
//父组件接收到数据会调用自己的runParent方法,这个时候就能拿到子组件的数据runParent(e){ console.1og(e);//子组件给父组件广播的数据}