gpt4 book ai didi

angular - 如何检测Angular2中的变量变化

转载 作者:太空狗 更新时间:2023-10-29 17:08:14 27 4
gpt4 key购买 nike

我在构造函数运行之前设置了以下配置对象:

config: Object = {
onSlideChangeEnd : function(slide:any) {
this.currentSlideIndex = slide.activeIndex;
}
};

我想通知服务有关更改,问题是设置配置时该服务尚不可用:

 constructor(private user: UserService,
private layout: LayoutService) {
}

如何通知服务这个变量变化?

最佳答案

好吧,正如建议的那样使用 Observables,这并不是什么大麻烦,而且效果很好。实际上不超过几行。

在一些公共(public)服务中声明它们共享的服务,例如在该模块中声明为提供者的服务,这样您就不会得到同一服务的两个实例。向该服务添加一个 Subject 和一个发出值的方法:

public configObservable = new Subject<number>();

emitConfig(val) {
this.configObservable.next(val);
}

在组件中你需要设置配置:

emit(val) { // your value you want to emit
this.myService.emitConfig(val);
}

然后在你需要的地方订阅这个值:

constructor(private myService: MyService) {
this.myService.configObservable.subscribe(value => {
this.value = value;
})
}

在亲子交互中使用上述代码工作 plunker:

Plunker

关于您对 @Input() 的评论,它在父组件-子组件交互时效果很好,因此在这种情况下对您来说并不适用。

关于angular - 如何检测Angular2中的变量变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41915625/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com