Я реструктурирую проект angular, в котором я обнаружил следующие функциональные возможности.
В файле app.component.ts
ngOnInit() {
this.portfolioID = Number(sessionStorage.getItem('portfolioID'));
console.log(this.portfolioID);
this.sharedService.getPortfilioID().subscribe(portfolioID => {
if (portfolioID && portfolioID !== 0) {
this.items.forEach(item => {
if (item.displayText === 'Business Licenses' && item.items.length > 0) {
item.items.forEach(childItem => {
childItem.url = childItem.defaultUrl;
});
}
});
}
});
}
Они получают некоторый идентификатор из localalstorage, который был установлен нажав на ссылку в другом компоненте.
Another.component. html
<ng-template kendoGridCellTemplate let-dataItem *ngIf="column.isActionable && titleName == 'Customer Search'">
<a href="javascript:void(0)" *ngIf="column.attributeName == 'portfolioName'"
(click)="viewPortfolioDetails(dataItem.portfolioID)">{{dataItem.portfolioName}}</a>
</ng-template>
Another.component.ts
viewPortfolioDetails(portfolioID: number) {
sessionStorage.setItem('portfolioID', portfolioID.toString());
this.sharedService.setPortfolioID(portfolioID);
}
Итак, как было установлено при нажатии, изначально, когда страница загружается в первый раз до щелчка, я не могу получить идентификатор, и последующая функциональность не работает. Итак, мой вопрос, могу ли я снова вызвать метод onInit () app.component? Или есть ли лучший подход для этого? Спасибо.