Я пытаюсь заполнить массив маршрутов в angular 8 и столкнулся с некоторыми проблемами времени компиляции. Я использую оператор карты, чтобы перебрать объект массива модели и присвоить его значение массиву навигационных маршрутов.
Почему-то не нравится назначение внутренних объектов. Его невозможно определить this.navigationServiceRoute.
this.navigationServiceRoute = navigationServiceRoute.map({
Я пытался использовать publi c, пусть, объявив переменную в методе buildroutes, но он просто не распознает ее. Может ли кто-нибудь помочь мне с этим? Нужно ли использовать какой-либо другой метод для заполнения массива на основе значений другого массива?
ngOnInit() {
this.getOutstandingAgreements();
}
public getOutstandingAgreements() {
this.agreementsService
.getOutstandingAgreements()
.subscribe((data: AgreementModel[]) => {
if (data) {
this.myData = data;
const routes = this.buildRoutes(this.myData);
this.store.dispatch(new SetRoutes(routes));
}
});
}
buildRoutes(agreement: AgreementModel[]): NavigationServiceRoute[] {
let navigationServiceRoute: NavigationServiceRoute[];
agreement.map(ag => ({
this.navigationServiceRoute = navigationServiceRoute.map({
sectionName: SectionNames.iba,
errorCount: 0,
order: section.order,
complete: section.isPass,
path: `agreement/${ag.userAgreementId}`,
queryParams: {},
roles: [],
title: section.name,
visited: section.isComplete,
baseAddress: `individual-business-application`,
hidden: false
})
}));
return this.navigationServiceRoute;
}
Я пробовал этот способ, но не работает либо
buildRoutes(agreement: AgreementModel[]): NavigationServiceRoute[] {
console.log('agreement', agreement );
if (agreement !== undefined) {
for ( let i = 0; i <= agreement.length; i++ ) {
this.navigationServiceRoute.forEach(element => {
element.sectionName = 'test',
element.errorCount = 0,
element.order = 7,
element.complete = false,
element.path = `agreement/${agreement[i].userAgreementId}`,
element.queryParams = {},
element.roles = [],
element.title = 'test',
element.visited = false,
element.baseAddress = `individual-business-application`,
element.hidden = false;
});
}
}