Я приложение 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}
);*/