#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'})
и не предоставляйте его ни в одном массиве поставщиков.