Ioni c 3 Ошибка: не удается разрешить все параметры для ChatNotificationServiceProvider: (?,?) При добавлении поставщика в другого поставщика - PullRequest
2 голосов
/ 30 января 2020

Я пытаюсь 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,
  ]

1 Ответ

0 голосов
/ 30 января 2020

Пожалуйста, удалите

import { AuthService } from '../auth-service/auth-service'; 

из ChatNotificationServiceProvider

Также, пожалуйста, проверьте ниже

Для создания провайдеров first.provider.ts

import { Injectable } from '@angular/core';

@Injectable()
export class FirstProvider {
  constructor() {
  }
}

second.provider.ts

import { Injectable } from '@angular/core';

@Injectable()
export class SecondPrivider{
  constructor() {
  }
}

index.ts

export { FirstProvider} from './providers/first.provider';
export { SecondProvider} from './providers/second.provider';

в app.module.ts Пожалуйста, добавьте вышеуказанных провайдеров

providers: [
  FirstProvider,
  SecondProvider
]

Для создания служб

import { Injectable } from '@angular/core';
import { FirstProvider, SecondProvider } from './providers';

@Injectable()
export class AuthService {
  constructor(private firstProvider: FirstProvider, 
              private secondProvider : SecondProvider ) { }
  onChangeFormat(str) {
      // add logic here
      // this.firstProvider()
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...