angular 父组件调用子组件的方法,父子组件通信的方法
有角的父子组件间怎么进行通信?本篇文章给大家介绍一下有角的父子组件传值方式。
通过Input和Ouput传值
父组件:html和分时(同分时)
app-lift cycle[name]= name (changeName)= changeName($ event)/app-lift cycle public name:string= jack ;
公共更改名称(值:字符串){
this.name=值
}子组件:html和分时(同分时)
div(click)= emit() { { name } }/div从 @ angular/core 导入{ Component,Input,EventEmitter,Output };
@ Input()name:string;
@ Output()changeName:EventEmitterstring=new EventEmitterstring();
公共发出(){
this.changeName.emit(修改名字属性);
}【相关教程推荐: 《angular教程》 】
通过setter监听属性的变化
父组件同上,子组件:
private _ name:string=" ";
@Input()
公共get name(): string {
归还这个.姓名
}
公共集名称(值:字符串){
这个 name=value 定义结构;
}通过ngOnChanges钩子函数监听输入属性的变化
恩贡昌斯在监听多个属性的时候,要比作曲者的方式简便一些。
@ Input()name:string;
ngOnChanges(更改:简单更改):void {
(({name})={
console.log(name.currentValue,name。前一值);
})(改动);
}父组件html中通过模板变量调用子组件的方法和属性。
模板变量获取了子组件的一个引用。
父组件:
app-lift周期#子/app-lift周期
按钮(单击)=child.childFn()按钮/按钮子组件:
公共子级Fn() {
console.log(通过模板变量调用子组件中的方法);
}父组件通过ViewChild获取子组件实例
app-lift cycle[name]= name (changeName)= changeName($ event) #子/app-lift cycle
button(click)= child fn() child fn/button @ view child( child )child:lift cycle组件;
public childFn(): void {
这个。孩子。子fn();
}通过service进行通信
服务:
从" rxjs "导入{主题};
从" @角度/核心"导入{内射};
@可注射({
提供了:"根"
})
导出类通信服务{
构造函数(){}
public commun=new subject string();
communSend() {
这个。commun。下一个(发送);
}
}父组件:
构造函数(私有通信:通信服务){ }
public send(): void {
这个。com门。com munsend();
}子组件:
构造函数(私有通信:通信服务){
这个。commun。commun。订阅((值)={控制台。log(value)});
}父组件传递方法
父组件通过属性传递给子组件方法,子组件进行调用,一般不推荐,反应过来采用这种通信方式。
可能是基于这的绑定错综复杂,所以有角的不太推荐反应钩的出现也有一部分原因
是班级类的这错综复杂。
父组件:
app-lift周期[发送]=发送。bind(this)/app-lift cycle public name:string= jack ;
public send(): void {
控制台。日志(这个。姓名);
}子组件:
button(click)= child send() child send/button @ Input()send:函数;
public childSend() {
这个。send();
}更多编程相关知识,请访问:编程视频!以上就是有角的父子组件间怎么进行通信?父子传值的方式浅析的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。