Я пытаюсь inject
провайдера (ChatNotificationServiceProvider
) в мой AuthService
(Другой провайдер), однако, когда я inject
ChatNotificationServiceProvider в моего провайдера AuthService (через конструктор), ошибка ' Не удается разрешить все параметры для ChatNotificationServiceProvider: (?,?) 'появилось.
Я прочитал другие решения, и все они сказали, чтобы поместить @Injectable
в ChatNotificationServiceProvider
, и оно должно работать. Однако я уже вставил @Injectable
, но он все еще не работает.
Вот мои коды: ChatNotificationServiceProvider.ts
import { Injectable, OnInit } from '@angular/core';
import { AuthService } from '../auth-service/auth-service';
@Injectable()
export class ChatNotificationServiceProvider {
public chat;
constructor(private authService: AuthService) {
}
AuthService.ts
import { Injectable, Injector } from '@angular/core';
import 'firebase/auth'
import * as firebase from 'firebase/app';
import 'firebase/storage';
import { ChatNotificationServiceProvider } from '../chat-notification-service/chat-notification-service';
@Injectable()
export class AuthService {
constructor(public listingProvider: ListingProvider, public chatNotificationSvc: ChatNotificationServiceProvider) <-- After injecting the ChatNotificationServiceProvider, the error mentioned above is thrown to me.
{
this.chatNotificationSvc.str = "Test string";
}
Некоторая дополнительная информация: я ввел ChatNotificationServiceProvider в мой app.component, используя тот же метод, и он работает нормально. Не уверен, почему я не могу ввести того же поставщика в других поставщиков.
Пожалуйста, помогите! Разве невозможно внедрить провайдера в другого провайдера? Я совершенно запутался в этом.
Редактировать: Вот мои провайдеры в моем app.module.ts по запросу @ Serena.
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler},
FirestoreServiceProvider,
AngularFirestore,
PayPal,
ChatNotificationServiceProvider,
Storage,
Camera,
AuthService,
BookingService,
ListingProvider,
]