typescript - Angular 4 använda en tjänst i routingmodul


Jag försöker göra ett enkelt CMS-system med en Laravel REST API. För front-end använder jag Angular 4-ramverket och Angular CLI. Nu försöker jag generera dynamiska rutter (hämta sidor från API:et med en tjänst och generera rutter för var och en av dessa sidor). Jag försökte detta med en lokal datasimulering och fick det att fungera på detta sätt.

Routing.module.ts

let cmsService: CmsService = new CmsService();
const pages = cmsService.getPageNames();

const routes: Routes = [
  { path: '', component: OverviewComponent },
  { path: 'login', component: LoginComponent}
];

for (let i = 0; i < pages.length; i++) {
  routes.push(
    { path: pages[i].toString(), component: PageEditComponent}
  );
}

Jag vet att detta förmodligen inte är det bästa sättet att göra saker på, men det fungerade. Nu måste jag injicera HTTP och hela grejen kraschar eftersom följande inte fungerar längre eftersom det förväntar sig att få HTTP injicerat.

let cmsService: CmsService = new CmsService();

Jag skulle troligtvis kunna klara det genom att manipulera http-variabeln på något sätt, men det känns lite smutsigt. Så jag började undra om det inte fanns ett enklare sätt att göra detta på. Till exempel att injicera tjänsten som man ska istället för att skapa en ny tjänst. Och skapa rutter för sidorna som hämtas på detta sätt.

Tack i förväg!

Relaterade artiklar