В Angular 6, предоставление пути к маршруту через ошибку выброса массива - PullRequest
0 голосов
/ 06 февраля 2019

Я приложение Angular 6, я передаю угловые маршруты из класса обслуживания в формате

{ text: string, path: string }

, поэтому идея заключается в том, что я добавляю маршруты динамически, что прекрасно работает, если я предоставляю данные статически, однако, если я заменяю ихструктура, предоставляющая данные через массив, выдает ошибку,

Я твердо верю, что это связано со структурой массива, способом передачи его в router.config.unshift.Метод unshift принимает массив Маршрутизатора, где я передаю массив любого .......

error

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'split' of undefined

TypeError: Невозможно прочитать свойство split из undefined в defaultUrlMatcher (router.js: 530)

служба маршрутизации

 @Injectable({
 providedIn: 'root'
 })

export class DynamicRoutingService{

messages: string[] = [];

constructor(){}

getDynamicRoutes():any{ // need fix here to pass Route[]
 return [
    { path: 'publicSurvey', component: SurveyFormComponent },
    { path: 'RedMatter', component: SurveyFormComponent },
    { path:'waterDamAndBridge', component:SurveyFormComponent}
  ];
 }
}

компонент приложения

export class AppComponent {

 constructor(
   private router: Router,
   private routingService:DynamicRoutingService
 ){

  let dynamicRoutes = this.routingService.getDynamicRoutes();

  this.router.config.unshift(dynamicRoutes); // this line throw error


  /*  following disable code does work
   this.router.config.unshift(
  { path: 'publicSurvey', component: SurveyFormComponent },
  { path: 'RedMatter', component: SurveyFormComponent },
  { path:'waterDamAndBridge', component:SurveyFormComponent}
);*/

1 Ответ

0 голосов
/ 06 февраля 2019

Попробуйте деструктурирующее задание :

this.router.config.unshift(...dynamicRoutes);

...