Вводимые глобальные переменные Angular 8 не поддерживают значение

#angular #angular8

#angular #angular8

Вопрос:

Я объявил global.ts файл:

 @Injectable()
export class Globals {
  utentePuntoVendita: boolean = false;
[...]
}
  

В конструкторе моих компонентов я читаю эту переменную и что-то делаю. Первый загруженный компонент правильно считывает его. Затем, если я перейду к другому компоненту (с первого, то есть на второй уровень страницы) Я вижу, что значение в глобалах инвертировано.

Как это возможно?

Я проверил, и я никогда не переназначал значение в глобалах, я только прочитал его.

Вот как я это прочитал:

 constructor(
    private global: Globals
  ) {
    this.utentePuntoVendita= this.global.utentePuntoVendita;
}
  

Я попытался напечатать global в консоли и заметил что-то очень странное:

[введите описание изображения здесь]

и это для каждой консоли.журнал глобальных данных в каждом компоненте. Но только первый из них каким-то образом способен считывать правильное значение. Что происходит?

Комментарии:

1. Попробуйте angular.io/guide/singleton-services#using-providedin . Или поместите код для NgModules, где вы предоставляете глобальную службу

2. Украсьте его @Injectable({providedIn: 'root'}) и не предоставляйте его ни в одном массиве поставщиков.