У меня проблема angular, и я не могу понять, почему.
Когда я делаю ng serve
и запускаю код локально, все работает нормально. Нет сообщений об ошибках или предупреждений.
Однако, когда я использую ng build --prod
и загружаю файл dist
в AWS, теперь я получаю сообщение об ошибке при нажатии кнопки.
Ошибка:
main-es2015.9568554f8026ce400f37.js:1 ERROR NullInjectorError: StaticInjectorError(oo)[SS -> e]:
StaticInjectorError(Platform: core)[SS -> e]:
NullInjectorError: No provider for e!
at Oe.get (https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:483678)
at https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:494184
at e (https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:494566)
at Nt.get (https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:494717)
at https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:494184
at e (https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:494566)
at Nt.get (https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:494717)
at Di (https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:515973)
at Ui.get (https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:524593)
at hs (https://dashboard.myurl.com/main-es2015.9568554f8026ce400f37.js:1:528442)
Это происходит по нажатию кнопки. Я использую Angular материал MatBottomSheet
, функция:
openEmojiSelect(): void {
this.req.trackEvent("Editor page", "Opened emoji selector", "click")
const bottomRef = this._bottomSheet.open(EmojiComponent, {
panelClass: 'emoji-panel-width'
});
bottomRef.afterDismissed().subscribe(() => {
console.log(this.req.getModuleEmoji())
this.moduleData.module.image_position = this.req.getModuleEmoji();
});
}
Я должен импортировать все правильно:
//imports
import { Component, OnInit } from '@angular/core';
import {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop';
import {MatDialog} from '@angular/material/dialog';
import { SnippetsComponent } from './snippets/snippets.component';
import { QuestionsComponent } from './questions/questions.component';
import { EmojiComponent } from './emoji/emoji.component';
import {MatBottomSheet, MatBottomSheetRef} from '@angular/material/bottom-sheet';
import { RequestsService } from '../../../requests.service';
import {Router, ActivatedRoute, Params} from '@angular/router';
//constructor
constructor(public dialog: MatDialog,
public req: RequestsService,
private activatedRoute: ActivatedRoute,
private router: Router,
private _bottomSheet: MatBottomSheet) { }
Я действительно понятия не имею, в чем проблема поскольку это не происходит локально, и мне очень трудно отлаживать, когда ошибка вообще не ясна.
Есть идеи? Спасибо
Обновление:
Я запустил ng serve --prod
, что дало мне более дословное сообщение об ошибке:
ERROR NullInjectorError: StaticInjectorError(AppModule)[ctrl_ngx_emoji_mart_CategoryComponent -> EmojiFrequentlyService]:
StaticInjectorError(Platform: core)[ctrl_ngx_emoji_mart_CategoryComponent -> EmojiFrequentlyService]:
NullInjectorError: No provider for EmojiFrequentlyService!