大佬教程收集整理的这篇文章主要介绍了Angular2 – 使用服务的组件之间的交互,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<A></A> <router-outlet></router-outlet>
并且组件B使用routing进行渲染.我正在考虑使用具有可观察布尔值的服务,该服务指示是否单击了A中的按钮.这是实现它的正确方法吗?
使用BehaviorSubject as a data delegate的示例:
共享服务:
@Injectable() export class SharedService { isVisibleSource: BehaviorSubject<boolean> = new BehaviorSubject(false); constructor() { } }
第1部分:
export class Component1 { isVisible: boolean = false; constructor(private sharedService: SharedService) { } onClick(): void { this.isVisible = !this.isVisible; this.sharedService.isVisibleSource.next(this.isVisible); } }
第2部分:
export class Component2 { constructor(private sharedService: SharedService) { } ngOnInit() { this.sharedService.isVisibleSource.subscribe((isVisible: boolean) => { console.log('isVisible: ',isVisible); // => true/false }); } }
值得一提的是订阅时的BehaviorSubject会返回它所持有的最后一个值,因此上述示例中的组件将在实例化后立即使用最新值进行更新.
BehaviorSubject还允许在不订阅它的情况下获取其最新值:
this.sharedService.isVisibleSource.getValue(); // => true/false
以上是大佬教程为你收集整理的Angular2 – 使用服务的组件之间的交互全部内容,希望文章能够帮你解决Angular2 – 使用服务的组件之间的交互所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。