je ne sais pas ce que je fais de mal, mais lorsque j'essaie d'utiliser des plug-ins ionique et Cordova, l'erreur suivante s'affiche après le service ionique: "impossible de résoudre tous les paramètres de [objet OBJECT], [objet OBJECT], [objet OBJECT], [objet OBJET], [objet OBJECT] ,? "
import { Component, Injectable } from '@angular/core';
import { NavController } from 'ionic-angular';
import { ToastController } from 'ionic-angular';
import { File } from '@ionic-native/file';
import { Diagnostic } from '@ionic-native/diagnostic';
import { CameraPreview, CameraPreviewOptions, CameraPreviewDimensions} from '@ionic-native/camera-preview';
declare var cordova: any;
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [CameraPreview, Diagnostic]
})
export class HomePage {
constructor(
public navCtrl: NavController,
public toastCtrl: ToastController,
public file:File,
public diagnostic:Diagnostic,
public cameraPreview: CameraPreview,
public previewRect: CameraPreviewOptions
) {
this.checkPermissions();
}
J'ai eu le même problème quelque part, alors j'ai supprimé le dernier paramètre de constructeur et je l'ai donné avant constructeur Dans ton cas comme ça,
export class HomePage {
public previewRect: CameraPreviewOptions;
constructor(
public navCtrl: NavController,
public toastCtrl: ToastController,
public file:File,
public diagnostic:Diagnostic,
public cameraPreview: CameraPreview
) {
this.checkPermissions();
}
}
Je ne sais pas si c'est la bonne solution mais j'ai résolu mon problème.
Il s'agit d'un problème de dépendance angulaire moins connu, où le compilateur est incapable de démêler l'arbre de dépendance.
La solution consiste à utiliser @Inject
avec les déclarations.
export class HomePage {
constructor(
public navCtrl: NavController,
public toastCtrl: ToastController,
public file:File,
public diagnostic:Diagnostic,
@Inject(CameraPreview) public cameraPreview: CameraPreview
) {
this.checkPermissions();
}
}
Avec cela, vous dites au compilateur que la classe manquante sera injectée ultérieurement.
En outre, il est important de dire que CameraPreview
devrait lui-même être décoré avec @Injectable()
.
@Injectable()
export class CameraPreview
// ... your code
}