Angular 8:没有MultilevelMenuService的提供程序

Angular 8:没有MultilevelMenuService的提供程序,angular,npm,Angular,Npm,我有一个angular8项目,我最近在节点10.15.2,npm:6.14.5上升级了angular7 我正在使用以下插件 @4.12.2 使用ng serve,应用程序运行良好,多级性能达到预期 但是,我安装了angular ssr,如中所述,在使用命令运行时: ng serve-prod-optimization=错误 或 npm运行构建:ssr&&npm运行服务:ssr 我收到以下错误: main.96f1C6996E6C439B888.js:29505错误NullInjectorErro

我有一个angular8项目,我最近在节点10.15.2,npm:6.14.5上升级了angular7

我正在使用以下插件

@4.12.2

使用ng serve,应用程序运行良好,多级性能达到预期

但是,我安装了angular ssr,如中所述,在使用命令运行时:

ng serve-prod-optimization=错误

npm运行构建:ssr&&npm运行服务:ssr

我收到以下错误:

main.96f1C6996E6C439B888.js:29505错误NullInjectorError:StaticInjectorErrorRappModule[ListItemComponent->MultilevelMenuService]: StaticInjectorErrorPlatform:core[ListItemComponent->MultilevelMenuService]: NullInjectorError:没有多级MenUserVice的提供程序

我已经做了以下项目,以显示我得到的错误,你可以在链接中找到

有没有办法解决这个问题

谢谢

这是您的解决方案

import { NgModule } from "@angular/core";

import { AppComponent } from "./app.component";
import {
  NgMaterialMultilevelMenuModule,
  ɵb,
} from "ng-material-multilevel-menu"; // <------- added from the module
import { RouterModule, Routes } from "@angular/router";
// import { MultilevelMenuService } from "ng-material-multilevel-menu/lib/multilevel-menu.service";

const appRoutes: Routes = [];

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule.withServerTransition({ appId: "serverApp" }),
    NgMaterialMultilevelMenuModule,
    RouterModule.forRoot(appRoutes, {
      enableTracing: false,
      onSameUrlNavigation: "reload",
    }), // <-- debugging purposes only
  ],
  providers: [ɵb], <----- import for service provider
  bootstrap: [AppComponent],
})
export class AppModule {}
问题是你的应用程序试图获取一个本应初始化但未初始化的服务实例。因此,我添加了一个提供商,用于查看模块中的导出。ɵb这是您的解决方案

import { NgModule } from "@angular/core";

import { AppComponent } from "./app.component";
import {
  NgMaterialMultilevelMenuModule,
  ɵb,
} from "ng-material-multilevel-menu"; // <------- added from the module
import { RouterModule, Routes } from "@angular/router";
// import { MultilevelMenuService } from "ng-material-multilevel-menu/lib/multilevel-menu.service";

const appRoutes: Routes = [];

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule.withServerTransition({ appId: "serverApp" }),
    NgMaterialMultilevelMenuModule,
    RouterModule.forRoot(appRoutes, {
      enableTracing: false,
      onSameUrlNavigation: "reload",
    }), // <-- debugging purposes only
  ],
  providers: [ɵb], <----- import for service provider
  bootstrap: [AppComponent],
})
export class AppModule {}

问题是你的应用程序试图获取一个本应初始化但未初始化的服务实例。因此,我添加了一个提供商,用于查看模块中的导出。ɵb您的角度项目是否有多个模块?如果是,那么您是否在使用它的模块中注册了MultilevelMenuService/根级别的服务是否可供所有其他模块访问,那么ListItemComponent应该可以正常工作您的Angular项目是否有多个模块?如果是,那么您是否在正在使用MultilevelMenuService的模块中注册了该MultilevelMenuService/该服务是否在根级别可供所有其他模块访问,然后ListItemComponent应该可以正常工作我还看到缺少browseranimationsmodule,它是材质库所需的它只是一个错误应用程序仍在加载…我还看到缺少browseranimationsmodule,它是材质库所需的它只是一个错误应用程序仍在加载。。。