一,父组件给子组件传值
1,父组件调用子组件的时候传入数据
<app-header [msg]="msg"></app-header>
2,子组件引入Input模块
import { Component, OnInit ,Input } from '@angular/core';
3,子组件中@Input接收父组件传过来的数据
@input() msg:string
4,不仅可以传值,还可以传方法,还可以把整个父组件传过去(通过this)
<app-header [titlel]="title" [msg]="msg" [run]='run' [home]='this'></app-header>
@input() run:any; @input() home: any;
第一种方法:
1,子组件引入Viewchild模块
import { Component, OnInit,Viewchild } from 'Aangular/core";
2,引用子组件加#footer
<app-footer #footer></app-footer>
3,获取子组件实例对象
@Viewchild('footer) footer:any;
this.footer.xxx
第二种方法:
1,子组件引入Output和EventEmitter
import { Component, OnInit ,Input, Output,EventEmitter} from '@angular/core';
2,子组件中实例化EventEmitter
@output() private outer=new EventEmitter<string>();
3,子组件通过 EventEmitter对象outer实例广播数据
sendParent(){ this.outer.emit('msg from child') }
4,父组件调用子组件的时候,定义接收事件, outer就是子组件的EventEmitter对象outer
<app-header (outer)="runParent($event)"></app-header>
5,父组件接收到数据会调用自己的runParent方法,这个时候就能拿到子组件的数据
runParent(e){ console.1og(e);//子组件给父组件广播的数据
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。