Как я могу получить и установить глобальные переменные в Angular 8? Проблема в том, что если я создаю такой файл
export class SharedService {
globalLanguage:string;
setGlobalVar(currentLanguage:string) {
this.globalLanguage = currentLanguage;
}
getGlobalVar():string{
return this.globalLanguage;
}
}
и пытаюсь установить его из компонента с помощью функции set, считав из другого компонента с помощью функции get, переменная будет undefined
. Я искал несколько примеров, но они относятся только к глобальной константе, а не к глобальной переменной, которую я могу изменить или обновить. Как я могу решить проблему?
Редактировать
Я тоже пытался таким образом, но с тем же результатом, переменная не определена.
Вот глобальная служба ввода var:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class SharedService {
private globalLanguage:string;
setGlobalVar(currentLanguage:string) {
this.globalLanguage = currentLanguage;
}
getGlobalVar():string{
return this.globalLanguage;
}
}
Это то, как я установил для компонента 1:
import { SharedService } from '../../../shared/vars'
@Component({
providers: [SharedService],
selector: 'app-user-menu',
templateUrl: './user-menu.component.html',
styleUrls: ['./user-menu.component.scss']
})
export class UserMenuComponent implements OnInit {
constructor(public translate: TranslateService , public ls: SharedService) {
(...)
}
ngOnInit() {
}
languageSwitcher(currentLanguage: string){
// This is the set point!
this.ls.setGlobalVar(currentLanguage);
}
}
И это то, как я читаю из компонента 2, с результатом "undefined":
import { Component, OnInit } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { SharedService } from '../../shared/vars'
@Component({
providers: [SharedService],
selector: 'app-administration',
templateUrl: './administration-main.component.html',
styleUrls: ['./administration-main.component.scss']
})
export class AdministrationMainComponent implements OnInit {
constructor(public translate: TranslateService, public ls: SharedService) {
//This is the output point!
console.log('test' + ls.getGlobalVar());
}
ngOnInit() {
}
}