2017-07-08 8 views
6

Utworzyłem moduł przy użyciu kątowego CLI i zapomniałem dodać - rutowanie podczas jego tworzenia, teraz chcę dodać do niego moduł rutowania.Jak dodać moduł routingu do istniejącego modułu w kanciastym interfejsie CLI w wersji 1.1.1?

ng init --routing nie pomoże w kątowym CLI wersji 1.1.1

+1

Dodaj kod samodzielnie. Lub wygeneruj kolejny moduł z routingiem i skopiuj i wklej wygenerowany kod. –

+0

nowa wersja kątowego cli nie obsługuje ng init – NuttLoose

Odpowiedz

7

to nie jest w ogóle problem.

Wystarczy dodać routing ręcznie.

All że flaga --routing robi, oprócz dodawania <router-outlet></router-outlet> w app.component.html, to dodać q RouterModule.forRoot() rozmowy w oddzielnym module o nazwie AppRoutingModule i te moduły w imports z AppModule.

Tak więc w app.module.ts dodaje AppRoutingModule do imports swojego AppModule.

Numer AppRoutingModule jest zdefiniowany jako app-routing.module.ts, który jest tworzony from this template.

Jest bardzo mały, że będę go skopiować tutaj:

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

const routes: Routes = [ 
    { 
    path: '', 
    children: [] 
    } 
]; 

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

{path: '', children:[]} tylko zastępczy że oczekuje się zastąpić (wiem bo dodałem go do kodu źródłowego). Po prostu upewnia się, że router nie narzeka na <router-outlet>, gdy nie masz żadnych tras.

Wracając do pytania: co powinieneś zrobić? Albo skopiować plik do projektu, aby wyglądać tak jak w oryginalnym CLI i dodać AppRoutingModule zamiast twoi AppModule „s imports ...

Albo po prostu dodaj RouterModule.forRoot([/* routes here */]) do AppModule” s imports. Nadal będzie działać, dzięki wbudowanej obsłudze leniwego ładowania i wszystkim, co działa dobrze.

P.S.

Pamiętaj, że aby dodać trasy podrzędne, zawsze możesz wygenerować więcej modułów z routingiem ng generate module Foo --routing niezależnie od tego, czy użyłeś flagi --routing z ng new czy nie. Żadnej konfiguracji ani magii.

+0

Czy jest tam jakaś specjalna flaga do generowania tras podrzędnych? lub automatycznie utworzy ścieżki potomne, gdy użyję flagi '--routing' podczas tworzenia nowego modułu? –

Powiązane problemy