没有ChildrenOutletContexts的提供者(injectionError)

时间:2017-09-08 04:18:58

标签: angular

使用Angular CLI为我的应用程序生成路由模块时出现以下错误:

ng generate module --routing App

我使用Angular CLI生成路由模块,如下所示:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { MyComponent } from './my/my.component';

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

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

这是路由模块的内容:

app.component.html

这就是我<div class="container" role="main"> <router-outlet></router-outlet> </div> 中的内容:

{{1}}

出现此错误的原因是什么?

5 个答案:

答案 0 :(得分:75)

要解决此问题,请更改此行:

imports: [RouterModule.forChild(routes)],

为:

imports: [RouterModule.forRoot(routes)],

导致错误是因为RouterModule.forChild()生成的模块包含必要的指令和路由,但不包含路由服务。这就是RouterModule.forRoot的用途:它生成一个模块,其中包含必要的指令,路由,路由服务。

Angular文档中的更多信息:Angular - Router Module

答案 1 :(得分:1)

导入:[RouterModule.forRoot(routes)]

代替

导入:[RouterModule.forChild(routes)]

<块引用>

forChild() 方法创建了一个包含所有指令和给定路由的 NgModule,但不包括路由器服务。

答案 2 :(得分:0)

  

导入:[RouterModule.forRoot(routes)]

在RoutingModuleclass中更改此行

答案 3 :(得分:0)

当我没有导入正确的hotstrings("(?<=\w)\.(\w)", "word") return word: SendInput, % "{U+22C5}" $1 Return 模块时,通常会发生这种情况。

例如:在我导入的routingAppModule错误地来自“ @ angular / router” 而不是“ ./app-routing.module”中的RouterModule

当我使用Angular CLI时,我相信编译器,因此我会仔细检查自己,在大多数情况下这是我的不对劲 因此,当涉及到与模块一起生成路由文件时,我肯定Angular团队会做得很好

答案 4 :(得分:-1)

您也可以这样做:

我创建了一个import { Routes, RouterModule } from '@angular/router'; import { HomeComponent } from './components/homeComponent/home.component'; import { ListComponent } from './components/listComponent/list.component'; const appRoutes: Routes = [ { path: 'home', component: HomeComponent }, { path: 'list', component: ListComponent }, { path: '', component: ListComponent }, ]; export const routing = RouterModule.forRoot(appRoutes); 文件来分隔所有路由。

将您的路线导入您的模块,如下所示:

<强> app.route.ts:

app.module.ts

现在在routing,你必须导入import { routing } from './app.route'; @NgModule({ declarations: [ AppComponent, TestComponent ], imports: [ routing, ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }

from bs4 import BeautifulSoup
import requests
import re


page = 'https://news.google.com/news/headlines?gl=US&ned=us&hl=en'                 #main page

#url = raw_input("Enter a website to extract the URL's from: ")
r = requests.get(page)                              #requests html document
data = r.text                                       #set data = to html text
soup = BeautifulSoup(data, "html.parser")           #parse data with BS


for link in soup.find_all('a'):
    #if contains /news/
    if ('/news/' in link.get('href')):
        print(link.get('href'))

它对我有用。