【发布时间】:2019-07-29 15:02:33
【问题描述】:
我有一个名为global 的服务,其中包含应用程序中所有使用的全局变量。其中一个变量是语言,用户可以在其中将其从一种更改为另一种。单击时,应运行以下方法来更改应用方向:
更改目录() { this.dirService.changeAppDir.next('rtl'); }
dirService 被导入到组件中,BehaviorSubject 正在被访问 changeAppDir 使用 next 更改值。
dirService 具有以下脚本:
export class AppDirService {
changeAppDir = new BehaviorSubject<string>('');
dirValue = this.changeAppDir.asObservable();
constructor() {
}
}
问题是我不知道如何将全局var语言值更改为next()更改的新值,因此应用程序方向会改变。
这里是 global-var 脚本:
export class GlobarVarService {
defaultLang:string ;
defaultDir:string = "ltr" ;
constructor() {
}
}
defaultDir 正在绑定到应用的不同元素。
任何想法,因为这是我第一次使用行为主题方面?
【问题讨论】:
-
所以你需要更改网址吗?变量是否在窗口范围内?
-
@Robertgarcia 不是网址。应用程序的语言。如何将语言的
globarVar变量连接到其他服务中创建的behaviourSubject 以监控用户是否更改语言 -
只需在 AppDirService 构造函数中声明您的 globalVarService 并从中进行更改
-
但是您的 AppDirService 仅具有传播方向更改的属性。它没有可以传播语言更改的属性。如果您还想传播语言更改,则必须添加它们。
-
你能不能 fork this StackBlitz sample 并尝试在其中复制你当前的问题并与我们分享更新的 stackblitz 以便有人可以查看?
标签: angular angular8 behaviorsubject