У меня есть служба MyService
, объявленная со следующим декоратором:
@Injectable({
providedIn: 'root'
})
Выдержка из ее реализации:
private myData: string = '';
setData(data: string) {
this.myData = data;
}
getData(): string {
return this.myData;
}
У меня есть компонент MyComponent
и егоURL-адрес http://localhost:4200/sn8j8h
.При первой загрузке (переходя к ней с использованием маршрутов) я установил данные службы:
constructor (private srv: MyService) { }
ngOnInit() {
let s = this.srv.getData();
}
// this event triggers as I have demonstrated it by putting break points in
onSomeEvent() {
this.srv.SetData('my data');
}
Но при второй загрузке (нажав клавишу Enter, когда мой фокус находится в адресной строке браузера, гдеURL http://localhost:4200/sn8j8h
), ngOnInit
, srv.getData()
возвращает пустую строку вместо предыдущих данных my data
.
В документации сказано, что DI с provided in root
повторно используется в приложении.Но в моем примере он, кажется, не используется повторно.
Есть идеи?