Typescript 我想在subscribe参数之外使用变量
我使用的是Ionic 4,我想在文件的任何地方都使用这个变量。这对我很重要 我正在使用firebase,我想将一个页面的一个变量传递到另一个页面。这个问题解决了。但我想在第二页的每一部分都使用这个变量Typescript 我想在subscribe参数之外使用变量,typescript,ionic-framework,angular-ui-router,ionic4,Typescript,Ionic Framework,Angular Ui Router,Ionic4,我使用的是Ionic 4,我想在文件的任何地方都使用这个变量。这对我很重要 我正在使用firebase,我想将一个页面的一个变量传递到另一个页面。这个问题解决了。但我想在第二页的每一部分都使用这个变量 //first page code joinRoom(key) { this.router.navigate(['chat', {key: key}]); } //second page code constructor(public activateroute: ActivatedRou
//first page code
joinRoom(key) {
this.router.navigate(['chat', {key: key}]);
}
//second page code
constructor(public activateroute: ActivatedRoute){
this.activateroute.params.subscribe((data: any) => {
console.log(data);
this.key = data.key;
});
}
我想像在其他函数中一样在.ts页的任何地方使用
这个.key
,我想在第页全局声明它。我该怎么做呢?创建全局变量的一个简单方法是将其分配到窗口,而不是this.key=data.key
您将拥有window.key=data.key
然而,这种方法与其说是真正的解决方案,不如说是一种黑客手段
更好的解决方案是使用某种类型的单例键/值注册表,然后将其注入到所需的每个组件中
constructor(public activateroute: ActivatedRoute, private configRegistry: CustomRegistry){
this.activateroute.params.subscribe((data: any) => {
console.log(data);
// this.key = data.key;
configRegistry.set('key', data.key);
});
}
elsewhere in another file
constructor(private configRegistry: CustomRegistry){
console.log(configRegistry.get('key'));
}