Не удается разрешить все параметры для LoggedinPage (Angular - Component/Injectable)

Я получаю эту ошибку при запуске моего ионного приложения:

Can't resolve all parameters for LoggedinPage: (?, [object Object], [object Object]).

При вызове AuthService (типа Injectable) в конструкторе.

Странная часть в том, что она отлично работает в других классах!

LoggedinPage: (возникла проблема)

import { Component, ViewChild, ViewChildren, ElementRef } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { Chart } from 'chart.js';
import { AuthService } from '../../core/auth.service';


@Component({
  selector: 'page-loggedin',
  templateUrl: 'loggedin.html',
})
export class LoggedinPage {

  @ViewChild('barCanvas') barCanvas: ElementRef;

  barChart: any;

  constructor(public auth: AuthService, public navCtrl: NavController, public navParams: NavParams) 
  {
  } 
}

ContactPage: (работает нормально)

import { Component, ViewChild, ViewChildren, ElementRef } from '@angular/core';
import { NavController } from 'ionic-angular';
import { AuthService } from '../../core/auth.service';
import { Chart } from 'chart.js';

@Component({
  selector: 'page-contact',
  templateUrl: 'contact.html'
})
export class ContactPage{

  constructor(public navCtrl: NavController, public auth: AuthService) 
  {

  }

} 

Класс AuthService:

import { LoggedinPage } from './../pages/loggedin/loggedin';
import { HomePage } from './../pages/home/home';
import { ContactPage } from './../pages/contact/contact';
import { AuthGuard } from './auth.guard';
import { Injectable } from '@angular/core';
import { Router, RouterModule } from '@angular/router';
import { LoadingController, AlertController, NavController } from 'ionic-angular';
import * as firebase from 'firebase/app';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFirestore, AngularFirestoreDocument, AngularFirestoreCollection } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/switchMap';
import 'rxjs/add/observable/of';
import { GooglePlus } from '@ionic-native/google-plus';
import { NativeStorage } from '@ionic-native/native-storage';
import { Facebook } from '@ionic-native/facebook';

interface OliveandOil
{
  olivequantity: number;
  oilquantity: number;
}

interface OliveandOilYear
{
  year: number;
}

interface User 
{
  uid: string;
  email: string;
  photoURL?: string;
  displayName?: string;
}

@Injectable()
export class AuthService 
{

  user: Observable<User>;
  client: any;
  winobj: any = null;
  FB_APP_ID: number = XXXXXXXXX;

  key: number = 0;
  objects = {};

  constructor(private afAuth: AngularFireAuth, private nativeStorage: NativeStorage, private afs: AngularFirestore, private router: Router, public loadingCtrl: LoadingController, private googlePlus: GooglePlus, public alertCtrl: AlertController, public fb: Facebook, public navCtrl: NavController)
  {    
    this.googleLoginSilent();

    this.afAuth.authState.subscribe(user => 
      {
        if(user) 
        {
          this.user = this.afAuth.authState; //this means alert('fire user logged in');
        }
        else
        {
          Observable.of(null); //this means alert('fire user logged out');
        }
      }
    );
  } 
}

Обратите внимание, что функции AuthService были удалены, так как их много, и они не нужны для этого конкретного запроса.

Я использую VSCode, и он не показывает никаких "красных" или ошибок при упоминании AuthService в конструкторе.

Любая идея, почему это не может решить это, в то время как это может в идентичном классе?

Спасибо

import { NgModule } from '@angular/core';
import { AuthService } from './auth.service';
import { AngularFireAuthModule } from 'angularfire2/auth';
import { AngularFirestoreModule } from 'angularfire2/firestore';
@NgModule({
  imports: [
    AngularFireAuthModule,
    AngularFirestoreModule
  ],
  providers: [AuthService]
})
export class CoreModule { } 

1 ответ

Решение

Вы столкнулись с круговой зависимостью

LoggedinPage => AuthService => LoggedinPage

Удаление import { LoggedinPage } from './../pages/loggedin/loggedin'; от AuthService должен это исправить.

Другие вопросы по тегам