【问题标题】:ERROR Error: No provider for Router! at injectionError (core.es5.js:1231) [angular]ERROR 错误:没有路由器提供程序!在 injectionError (core.es5.js:1231) [角度]
【发布时间】:2017-09-09 13:35:08
【问题描述】:

我收到此错误。我的 angularJS 2 应用程序现在很小。我是 AngularJS 的新手。请帮忙!提前谢谢你。 app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MaterialModule } from '@angular/material';

dashboard.module.ts

import { ToolbarMultirow } from './toolbar-multirow';
import { DashboardComponent } from './dashboard/dashboard.component';
import { DashboardService } from './dashboard/shared/dashboard.service';
import { DashboardModule } from './dashboard/dashboard.module';

@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    FormsModule,
    HttpModule,
    ReactiveFormsModule,
    MaterialModule,
    DashboardModule
  ],
  declarations: [
    ToolbarMultirow,
    // DashboardComponent
  ],
  providers: [
    DashboardService
  ],
  bootstrap: [
    ToolbarMultirow,
    DashboardComponent
  ],
})
export class AppModule { }

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { HttpModule } from '@angular/http';

import { DashboardComponent } from './dashboard.component';
import { DashboardService } from './shared/dashboard.service';

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    HttpModule
  ],
  declarations: [
    DashboardComponent
  ],
  exports: [
      DashboardComponent,
      CommonModule,
      FormsModule
  ],
  providers: [
    // DashboardService
  ],
  bootstrap: [
    // DashboardComponent
  ]
})
export class DashboardModule { }

DashboardComponent_Host.html:1 错误上下文 DebugContext_ {view: 对象,nodeIndex:1,nodeDef:对象,elDef:对象,elView:对象} View_DashboardComponent_Host_0 @ DashboardComponent_Host.html:1 proxyClass@compiler.es5.js:13572 DebugContext_.logError@ core.es5.js:12953 ErrorHandler.handleError@core.es5.js:1149 (匿名)@core.es5.js:4660 ZoneDelegate.invoke@zone.js:365 onInvoke@core.es5.js:4125 ZoneDelegate.invoke@zone.js:364 Zone.run @ zone.js:125(匿名)@ zone.js:760 ZoneDelegate.invokeTask @ zone.js:398 onInvokeTask @ core.es5.js:4116 ZoneDelegate.invokeTask @ zone.js:397 Zone.runTask @ zone.js:165 drainMicroTaskQueue @ zone.js:593 zone.js:569 未处理的承诺拒绝:没有提供者 路由器! ;区域:;任务:Promise.then;值:错误:否 路由器提供商! 在 injectionError (core.es5.js:1231) [角度] 在 noProviderError (core.es5.js:1269) [角度] 在 ReflectiveInjector_.throwOrNull (core.es5.js:2770) [角度] 在 ReflectiveInjector.getByKeyDefault (core.es5.js:2809) [角度] 在 ReflectiveInjector.getByKey (core.es5.js:2741) [角度] 在 ReflectiveInjector.get (core.es5.js:2610) [角度] 在 AppModuleInjector.NgModuleInjector.get (core.es5.js:3557) [角度] 在 resolveDep (core.es5.js:10930) [角度] 在 createClass (core.es5.js:10799) [角度] 在 createDirectiveInstance (core.es5.js:10627) [角度] 在 createViewNodes (core.es5.js:11977) [角度] 在 createRootView (core.es5.js:11882) [角度] 在 callWithDebugContext (core.es5.js:13013) [角度] 在 Object.debugCreateRootView [as createRootView] (core.es5.js:12474) [angular] 错误 在 injectionError (http://localhost:4200/vendor.bundle.js:2025:86) [角度] 在 noProviderError (http://localhost:4200/vendor.bundle.js:2063:12) [角度] 在 ReflectiveInjector_.throwOrNull (http://localhost:4200/vendor.bundle.js:3564:19) [角度] 在 ReflectiveInjector.getByKeyDefault (http://localhost:4200/vendor.bundle.js:3603:25) [角度] 在 ReflectiveInjector.getByKey (http://localhost:4200/vendor.bundle.js:3535:25) [角度] 在 ReflectiveInjector.get (http://localhost:4200/vendor.bundle.js:3404:21) [角度] 在 AppModuleInjector.NgModuleInjector.get (http://localhost:4200/vendor.bundle.js:4351:52) [角度] 在 resolveDep (http://localhost:4200/vendor.bundle.js:11724:45) [角度] 在 createClass (http://localhost:4200/vendor.bundle.js:11593:32) [角度] 在 createDirectiveInstance (http://localhost:4200/vendor.bundle.js:11421:37) [角度] 在 createViewNodes (http://localhost:4200/vendor.bundle.js:12771:49) [角度] 在 createRootView (http://localhost:4200/vendor.bundle.js:12676:5) [角度] 在 callWithDebugContext (http://localhost:4200/vendor.bundle.js:13807:42) [角度] 在 Object.debugCreateRootView [as createRootView] (http://localhost:4200/vendor.bundle.js:13268:12) [angular] consoleError @ zone.js:569 handleUnhandledRejection @ zone.js:574 _loop_1 @ zone.js:609 drainMicroTaskQueue @ zone.js:613 zone.js:571 错误:未捕获(承诺):错误:没有路由器提供程序!错误 在 injectionError (core.es5.js:1231) [角度] 在 noProviderError (core.es5.js:1269) [角度] 在 ReflectiveInjector_.throwOrNull (core.es5.js:2770) [角度] 在 ReflectiveInjector.getByKeyDefault (core.es5.js:2809) [角度] 在 ReflectiveInjector.getByKey (core.es5.js:2741) [角度] 在 ReflectiveInjector.get (core.es5.js:2610) [角度] 在 AppModuleInjector.NgModuleInjector.get (core.es5.js:3557) [角度] 在 resolveDep (core.es5.js:10930) [角度] 在 createClass (core.es5.js:10799) [角度] 在 createDirectiveInstance (core.es5.js:10627) [角度] 在 createViewNodes (core.es5.js:11977) [角度] 在 createRootView (core.es5.js:11882) [角度] 在 callWithDebugContext (core.es5.js:13013) [角度] 在 Object.debugCreateRootView [as createRootView] (core.es5.js:12474) [angular] 在 injectionError (core.es5.js:1231) [角度] 在 noProviderError (core.es5.js:1269) [角度] 在 ReflectiveInjector_.throwOrNull (core.es5.js:2770) [角度] 在 ReflectiveInjector.getByKeyDefault (core.es5.js:2809) [角度] 在 ReflectiveInjector.getByKey (core.es5.js:2741) [角度] 在 ReflectiveInjector.get (core.es5.js:2610) [角度] 在 AppModuleInjector.NgModuleInjector.get (core.es5.js:3557) [角度] 在 resolveDep (core.es5.js:10930) [角度] 在 createClass (core.es5.js:10799) [角度] 在 createDirectiveInstance (core.es5.js:10627) [角度] 在 createViewNodes (core.es5.js:11977) [角度] 在 createRootView (core.es5.js:11882) [角度] 在 callWithDebugContext (core.es5.js:13013) [角度] 在 Object.debugCreateRootView [as createRootView] (core.es5.js:12474) [angular] 在 resolvePromise (zone.js:712) [] 在:4200/polyfills.bundle.js:3326:17 [] 在:4200/polyfills.bundle.js:3342:33 [] 在 Zone.run (zone.js:125) [=>] 在:4200/polyfills.bundle.js:3448:57 [] 在 Zone.runTask (zone.js:165) [=>] 在 drainMicroTaskQueue (zone.js:593) [] consoleError @ zone.js:571 handleUnhandledRejection @ zone.js:574 _loop_1@zone.js:609 drainMicroTaskQueue@zone.js:613

【问题讨论】:

  • 我通过删除Rooter等依赖解决了,...

标签: angular


【解决方案1】:

只需将 RouterModule 添加到导入。

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { HttpModule } from '@angular/http';

import { DashboardComponent } from './dashboard.component';
import { DashboardService } from './shared/dashboard.service';

@NgModule({
imports: [
  RouterModule, <-------
  CommonModule,
  FormsModule,
  ReactiveFormsModule,
  HttpModule
],
declarations: [
  DashboardComponent
],
exports: [
  DashboardComponent,
  CommonModule,
  FormsModule
],
providers: [
  // DashboardService
],
bootstrap: [
  // DashboardComponent
]
})
export class DashboardModule { }

【讨论】:

  • 你怎么知道必须导入哪个模块。我也遇到了同样的问题,所以我有必要确切知道必须导入哪个模块
猜你喜欢
  • 1970-01-01
  • 2016-01-16
  • 2018-12-27
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 2016-05-17
  • 2018-08-08
相关资源
最近更新 更多