首页 > 解决方案 > StaticInjectorError 和 NullInjectorError 在角度中使用路由器

问题描述

这是我的 app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { NavbarComponent } from './navbar/navbar.component';
import { DslistingsComponent } from './dslistings/dslistings.component';
import {MatCardModule} from '@angular/material/card';
import {MatGridListModule} from '@angular/material/grid-list';
import {MatExpansionModule} from '@angular/material/expansion';
import {MatButtonModule} from '@angular/material/button';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {MatChipsModule} from '@angular/material/chips';
import {MatDividerModule} from '@angular/material/divider';
import {MatListModule} from '@angular/material/list';
import { RouterModule, Router } from '@angular/Router';


@NgModule({
  declarations: [
    AppComponent,
    NavbarComponent,
    DslistingsComponent
  ],
  imports: [
    BrowserModule,
    MatCardModule,
    MatGridListModule, 
    MatExpansionModule,
    MatButtonModule,
    BrowserAnimationsModule,
    MatChipsModule,
    MatDividerModule,
    MatListModule,
    RouterModule.forRoot([{path:"", component: DslistingsComponent}])
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

这是我的 navbar.component.ts

import { Component, OnInit } from '@angular/core';
import * as cloneDeep from 'lodash/cloneDeep';
import { Location } from '@angular/common';

import { Router } from '@angular/router';
import * as customUrl from '../CustomUrlSerializer';

@Component({
  selector: 'app-navbar',
  templateUrl: './navbar.component.html',
  styleUrls: ['./navbar.component.css']
})


export class NavbarComponent implements OnInit {


  constructor(private router: Router) {

  }


  ngOnInit() {}

}

为什么即使我在 app.module 文件中导入了 RouterModule 然后在 navbar.component.ts 文件中声明了私有路由器,我也会收到错误消息? 在此处输入图像描述

html已经有了,我尝试从component.ts文件中删除私有路由器:路由器并且页面加载没有错误,就在我尝试在构造函数中添加路由器时,我得到了

StaticInjectorError(AppModule)[NavbarComponent -> Router]: 
  StaticInjectorError(Platform: core)[NavbarComponent -> Router]: 
    NullInjectorError: No provider for Router!
NullInjectorError: StaticInjectorError(AppModule)[NavbarComponent -> Router]: 
  StaticInjectorError(Platform: core)[NavbarComponent -> Router]: 
    NullInjectorError: No provider for Router!

标签: angularrouterangular-router

解决方案


推荐阅读