【子传父】
【父传子】
【非父子组件】
1、创建shared-service.ts 文件
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
@Injectable()
export class SharedService {
// Observable string sources
private emitChangeSource = new Subject<any>();
// Observable string streams
changeEmitted$ = this.emitChangeSource.asObservable();
// Service message commands
emitChange(change: any) {
this.emitChangeSource.next(change);
}
}
2、创建a.ts 文件
import { Component} from '@angular/core';
@Component({
})
export class AComponent {
constructor(
private _sharedService: SharedService
) { }
onClick(){
this._sharedService.emitChange('Data from A');
}
}
3、创建b.ts 文件
import { Component} from '@angular/core';
@Component({
})
export class BComponent {
constructor(
private _sharedService: SharedService
) {
_sharedService.changeEmitted$.subscribe(
text => {
console.log(text);
});
}
}
网友评论