Angular系列学习三:父子组件之间的交互(常见的组件通讯场景)

发布时间:2019-06-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Angular系列学习三:父子组件之间的交互(常见的组件通讯场景)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

作者:心叶
时间:2018-07-24 16:48:56

通过输入型绑定把数据从父组件传到子组件

通过@Input()可以实现父组件传递数据给子组件,下面先看看子组件代码:

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

    selector: 'child-comp',

    template: `
        <section>
            <header>{{title}}</header>
            <p>{{message}}</p>
        </section>
    `

})
export class ChildComponent {

    @Input() title: string;

    @Input('msg') message: string;

}

其中@Input('msg')是为message定义了别名,接着,在父组件中通过属性就可以传递值进来了:

<child-comp title="数据传递" msg="这是数据传递演示"></child-comp>

父组件通过监听子组件的事件获取子组件传递的数据

子组件传递数据给父组件是通过emit的方式,先看一下子组件代码:

import { Component, Input, Output, EventEmitter } from '@angular/core';
                
@Component({

    selector: 'child-comp',

    template: '<button (click)="doit('来自子组件的数据')">按钮</button>'

})
export class ChildComponent {

    @Output() onDoit = new EventEmitter<string>();
                
    doit(info: string) {

        this.onDoit.emit(info);

    }
}

通过@Output()触发父组件里面定义的onDoit事件,因此,需要在父组件中注册事件处理方法:

<child-comp (onDoit)="getInfo($event)"></child-comp>

getInfo是定义的一个方法,$event就是子组件传递的数据,点击子组件的按钮就会触发这个方法(弹出一句话),方法代码如下:

......
    
    getInfo(info:string){
        alert(info);
    }

......  

脚本宝典总结

以上是脚本宝典为你收集整理的Angular系列学习三:父子组件之间的交互(常见的组件通讯场景)全部内容,希望文章能够帮你解决Angular系列学习三:父子组件之间的交互(常见的组件通讯场景)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。