Angular 8: Нет провайдера для MultilevelMenuService - PullRequest
0 голосов
/ 20 июня 2020

У меня есть проект angular8, который я недавно обновил с angular7 на узле: «10.15.2», «npm»: «6.14.5»

Я использую следующий плагин

https://www.npmjs.com/package/ng-material-multilevel-menu

@4.12.2

С ng serve приложение работает нормально и многоуровнево, как и ожидалось.

Однако я установил angular ssr, как описано в универсальный , и когда я запускаю с помощью команды:

ng serve --prod --optimization=false

или

npm run build:ssr && npm run serve:ssr

Я получаю следующую ошибку:

main.96f1c69496e6c439b888. js: 29505 ОШИБКА NullInjectorError: StaticInjectorError (AppModule) [ListItemComponent -> MultilevelMenuServiceRus ) [ListItemComponent -> MultilevelMenuService]: NullInjectorError: Нет провайдера для MultilevelMenuService!

Я сделал следующий проект, чтобы показать ошибку, которую я получаю, которую вы можете найти по ссылке angular8- ng-multilevel

Любые идеи о том, как я могу решить i t?

Спасибо

1 Ответ

1 голос
/ 20 июня 2020

вот ваше исправление

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 <------ небольшой импорт, спасающий жизнь, я не знаю, почему сервер разработки предоставил экземпляр службы ... хммм, о чем подумать ... </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...