У меня есть одна служба, один компонент и один преобразователь, как указано ниже.В Конструкторе Сервисов есть несколько кодов, он должен установить значение в Сервисе, тогда, когда я ссылаюсь на определенный путь, Резолвер этого маршрута вызовет определенный Метод Сервиса, и Метод должен иметь возможность прочитать значение, которое уже установлено Конструктором.
Сервис:
@Injectable({
providedIn: 'root'
})
export class BuildjsonService {
public currentUser: User;
constructor() {
console.log('BuildjsonService constructor');
this.currentUser = JSON.parse(sessionStorage.getItem('currentUser'));
}
genReqContent(fmCode: string, caseKey: string, transKey: string, content: string){
let reqContent : ReqContent = new ReqContent();
console.log('genReqContent=' + JSON.stringify(this.currentUser));
reqContent.bankerId = this.currentUser.loginID;
return reqContent;
}
Нажмите на определенном маршруте, выстрелил из розольвера:
@Injectable()
export class GetSubDeptResolver implements Resolve<any> {
constructor(private httpClient: HttpClient,
private buildJsonSrv: BuildjsonService){}
resolve(): Observable<any> {
<!-- calling service-->
let reqCont = this.buildJsonSrv.genReqContent('', '', '', content);
let reqJsonObj: ReqJsonObj = this.buildJsonSrv.genJsonReq(reqCont, new FlowContent(), new TxnInfoContent());
return this.httpClient.post<any>('http://localhost:2387/utility/GetSubDept', reqJsonObj)
}
}
Однако, когда Resolver вызывает genReqContent () в Service, значение this.currentUser равно нулю.
Я вижу, что эта служба загружена и конструкторвызывается при запуске приложения, поэтому значение currentUser уже должно иметь значение, однако оно исчезает при использовании позже.
Я что-то не так делаю?Спасибо.