angular2非父子关系组件的交互
2018-08-29 本文已影响0人
lavender_zq
定义一个服务,利用这个服务实现组件间的双向通信;
用法:在一个组件中发布消息,通过服务可广播一条消息,如果别的组件订阅了该消息,则可以接收到。
服务的定义:
在一个组件中广播消息:
import {MessageService}from "../../shared/service/message.service"; //引入该服务
constructor(private messageService: MessageService) {
} //在构造器中注入服务
this.messageService.sendMessage("this message"); //发布消息
在其它某一个组件中订阅该消息:
import {MessageService}from "../../shared/service/message.service"; //引入该服务
constructor(private messageService: MessageService){
this.subscription =this.messageService.getMessage()
.subscribe(message => {
console.log(message ) //接收该消息
});
}