是否可以在angular 5中的另一个组件中使用组件的全局变量?

是否可以在angular 5中的另一个组件中使用组件的全局变量?,angular,Angular,我脑子里的一个问题是:是否有可能在一个组件中定义一个全局变量,并为其设置值,然后在另一个组件中使用它。事实上,我知道我可以通过服务做到这一点,但我想要一种不使用服务的方式,比如导入、声明或…,我不知道。你能帮帮我吗。这是我想在另一个组件中使用的变量: export class AdminComponent { currentUser: any; isAdvisor: boolean; constructor() { this.currentUser = JSON.parse(localSto

我脑子里的一个问题是:是否有可能在一个组件中定义一个全局变量,并为其设置值,然后在另一个组件中使用它。事实上,我知道我可以通过服务做到这一点,但我想要一种不使用服务的方式,比如导入、声明或…,我不知道。你能帮帮我吗。这是我想在另一个组件中使用的变量:

export class AdminComponent {

currentUser: any;
isAdvisor: boolean;

constructor() {
this.currentUser = JSON.parse(localStorage.getItem('userInfo'));
if (this.currentUser && this.currentUser.role === 4) {
   this.isAdvisorr = true;
  }
 }
}

高级版谢谢。

您不能只在组件之间共享变量,您需要组件之间的共享服务来进行通信


如果它就像一个配置,那么您可以将其保存在config.ts中,并将其导入两个组件中。

您不能只在组件之间共享一个变量,您需要在组件之间共享一个服务来进行通信


如果它就像一个配置,那么您可以将它放在config.ts中,并将其导入两个组件中。

是的,从技术上讲,使用导出的变量是可行的。但在另一个组件中使用该值之前,必须先实例化管理组件

注意最好使用服务

管理组件.ts

export let isAdvisor: boolean;


export class AdminComponent {

currentUser: any;

constructor() {
this.currentUser = JSON.parse(localStorage.getItem('userInfo'));
if (this.currentUser && this.currentUser.role === 4) {
   isAdvisorr = true;
  }
 }
}
其他.组件

import {isAdvisorr} from '../admin.component'

//use value here
let advisor = isAdvidorr;

是的,从技术上讲,使用导出的变量是可行的。但在另一个组件中使用该值之前,必须先实例化管理组件

注意最好使用服务

管理组件.ts

export let isAdvisor: boolean;


export class AdminComponent {

currentUser: any;

constructor() {
this.currentUser = JSON.parse(localStorage.getItem('userInfo'));
if (this.currentUser && this.currentUser.role === 4) {
   isAdvisorr = true;
  }
 }
}
其他.组件

import {isAdvisorr} from '../admin.component'

//use value here
let advisor = isAdvidorr;

谢谢你的回复。但是我认为使用提供者是可能的。提供者是服务是可能的,通过服务或某种配置文件。您认为对在项目中使用很多或在每个组件中分别定义的全局变量使用服务更好吗?如果是常量,请在您的环境中保留它。ts或config.ts否则请继续使用服务谢谢回复但我认为使用提供者是可能的。提供者是服务是可能的,通过服务或某种配置文件。您认为对在项目中使用很多或在每个组件中分别定义的全局变量使用服务更好吗?如果是常量,请将其保留在您的环境中。ts或config.ts否则请继续使用服务