Оператор Nested Map выдает ошибку времени компиляции - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь заполнить массив маршрутов в 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;
          });
      }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...