NullInjectorError: нет поставщика для ChildrenOutletContexts

Я все еще изучаю угловой. Я пытался создать пример на stackblitz, чтобы задать другой вопрос, и столкнулся с проблемой маршрутизации.

Пытаюсь настроить маршрутизацию. Я добавил в app.module.ts следующее:

  imports:      [ BrowserModule,
                  FormsModule,
                  RouterModule,

а затем я создал app-routing.module.ts:

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

import { NavComponent } from './components/NavComponent';
import { SearchComponent } from './components/SearchComponent';
import { ViewComponent } from './components/ViewComponent';

const routes: Routes = [
  { path: '', redirectTo: '/nav', pathMatch: 'full' },
  { path: 'nav', component: NavComponent },
  { path: 'search', component: SearchComponent },
  { path: 'view', component: ViewComponent }
];

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

export class AppRoutingModule {}

а затем добавил этот импорт в app.module.ts:

import { RouterModule } from '@angular/router';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';

Я думал, что это все, что мне нужно сделать, но когда я загружаю свое приложение, я получаю:

ERROR
Error: StaticInjectorError(AppModule)[RouterOutlet -> ChildrenOutletContexts]: 
StaticInjectorError(Platform: core)[RouterOutlet -> ChildrenOutletContexts]: 
NullInjectorError: No provider for ChildrenOutletContexts!

Я погуглил эту ошибку и обнаружил: Нет поставщика для ChildrenOutletContexts (jectionError) и Ошибка: нет поставщика для ChildrenOutletContexts, но я не считаю это полезным.

Вот мой stackblitz: https://stackblitz.com/edit/angular-j1seie?file=src%2Fapp%2Fapp.module.ts.

Не знаю, куда идти дальше.


person Thom    schedule 06.07.2019    source источник
comment
Замените RouterModule на AppRoutingModule в массиве импорта модуля приложения.   -  person R. Richards    schedule 06.07.2019
comment
@ R.Richards Похоже, это сработало. Вы хотите создать ответ, чтобы я мог отдать вам должное?   -  person Thom    schedule 06.07.2019


Ответы (1)


Вам просто нужно заменить RouterModule на AppRoutingModule в массиве импорта модуля приложения. Без этого приложение не знает о настроенных вами маршрутах. Достаточно легко пропустить, если это для вас в новинку.

person R. Richards    schedule 06.07.2019