данные не передаются по маршруту - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь выполнить маршрутизацию от одного компонента к другому компоненту в angular 8. Таким образом, в моем сценарии у меня есть два компонента: компонент истории и соглашение, компонент только для соглашения. Я пытаюсь перейти от компонента истории к соглашению только к компоненту соглашения. Компонент соглашениеreadonly загружается, но не может видеть данные модели, которые я передаю, поскольку они не определены. Я консоль зарегистрировал данные перед навигацией, чтобы убедиться, что они есть, и когда я консоль регистрирую их в соглашении, только они не определены. Может кто-нибудь сказать мне, в чем проблема может быть

Компонент истории соглашения

export class AgreementHistoryComponent implements OnInit {
 agreementsHistoryData: AgreementHistoryModel[];
 agreementsHistory: AgreementHistoryModel[];
 loading: boolean;
 showAgreementReadOnly: boolean;
 @Select(AgreementState.agreement) agreementModalState$: Observable<AgreementsStateModel>;
 public modal: any;


  constructor( public agreementsService: AgreementsService,
               public router: Router,
               private route: ActivatedRoute,
               public modalService: NgbModal) { }

  ngOnInit() {
      this.getAgreementsHistory();
  }

    public agreementClicked(userAgreementId: number) {
       this.getOutstandingAgreements(userAgreementId);
   }

     public getOutstandingAgreements(userAgreementId: number) {
    this.loading = true;
    this.agreementsService
        .getOutstandingAgreements(userAgreementId)
        .subscribe((data: AgreementsModel[]) => {
          if (data.length > 0) {
             this.showAgreementReadOnly = data[0].userAgreementStateId === 3 ? true : false;
             console.log('data is', data);
             if (this.showAgreementReadOnly) {
              this.router.navigate(['agreements-readonly', data], { relativeTo: this.route.parent });
            } else {
              this.agreementsService.store.dispatch(new SetAgreementStatus({ isInteracted: false , data: data }));
              this.loadModalDialog();
             this.loading = false;
            }
          }
        });
    }
}

СоглашениеReadonlyComponent

export class AgreementReadonlyComponent implements OnInit {
  myData: any;
  agreementData: any;
  agreementLength: number;
  loading: boolean;
  model: AgreementsModel;

  constructor( public agreementsService: AgreementsService,
               route: ActivatedRoute,
               private router: Router) {

                this.model = <AgreementsModel>route.snapshot.data['data'];
                console.log(this.model);
               }


  ngOnInit() {}

}

Модуль маршрутизации

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { MyAccountComponent } from './my-account.component';
import { SecurityPermissions } from '../../shared/constants/securityPermissions';
import { SectionNames } from '../../shared/constants/sectionNames';
import { AddBankAccountComponent } from './components/add-bank-account/add-bank-account.component';
import { BankAccountComponent } from './components/bank-account/bank-account.component';
import { MyAccountHomeComponent } from './components/my-account-home/my-account-home.component';
import { AccountContactDetailsComponent } from './components/contact-details/contact-details.component';
import { AgreementHistoryComponent } from '../agreements/components/agreement-history/agreement-history.component';
import { AgreementReadonlyComponent } from '../agreements/components/agreement-readonly/agreement-readonly.component';

const routes: Routes = [
  {
    path: '',
    component: MyAccountComponent,
    children: [
      {
        path: '',
        component: MyAccountHomeComponent,
        data: {
          title: 'My account home',
          order: 0,
          sectionName: SectionNames.myAccount,
          baseAddress: 'account'
        }
      },
      {
        path: 'add-bank-account',
        component: AddBankAccountComponent,
        data: {
          title: 'Add a bank account',
          role: [SecurityPermissions.myAccount.CreateBankAccount],
          order: 1,
          sectionName: SectionNames.myAccount,
          baseAddress: 'account'
        }
      },
      {
        path: 'bank-account/:id',
        component: BankAccountComponent,
        data: {
          title: 'My bank account details',
          role: [SecurityPermissions.myAccount.CreateBankAccount, SecurityPermissions.myAccount.ComplianceBankAccountApproval],
          order: 2,
          sectionName: SectionNames.myAccount,
          baseAddress: 'account'
        }
      },
      {
        path: 'contact-details',
        component: AccountContactDetailsComponent,
        data: {
          title: 'My contact details',
          role: [SecurityPermissions.myAccount.CreateBankAccount, SecurityPermissions.myAccount.ComplianceBankAccountApproval],
          order: 2,
          sectionName: SectionNames.myAccount,
          baseAddress: 'account'
        }
      },
      {
        path: 'agreements-history',
        component: AgreementHistoryComponent,
        data: {
          title: 'My agreement details',
          order: 3,
          sectionName: SectionNames.myAccount,
          baseAddress: 'account'
        }
      },
        {
          path: 'agreements-readonly',
          component: AgreementReadonlyComponent,
          data: {
            title: 'My agreement details',
            order: 3,
            sectionName: SectionNames.myAccount,
            baseAddress: 'account'
          }
        }
    ]
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class MyAccountRoutingModule { }

Снимок экрана ошибка

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...