import { Component, Input, OnChanges } from '@angular/core';
@Component({
selector: 'image-display',
templateUrl: './image-display.component.html'
})
export class ImageDisplayComponent implements OnChanges {
@Input() image: File;
@Input() imagePath?: string;
private fileReader: FileReader;
constructor() { }
ngOnChanges() {
if (this.image && this.fileReader) {
this.fileReader.readAsDataURL(this.image);
}
}
}
En compilant cela avec AOT en dessous de l'erreur:
PRINHYLTPAP0592:matata ajays$ ng build --prod --aot
/myApp/src/$$_gendir/app/image-uploader/image-display/image-display.component.ngfactory.ts (61,9):
Supplied parameters do not match any signature of call target.
AOT vous oblige à informer chaque paramètre obligatoire unique pour chaque appel de méthode.
Dans votre exemple, la méthode ngOnChanges () doit en fait être ngOnChanges (changes: SimpleChanges).
S'il y a un décalage entre la méthode qui est appelée à partir de html et la définition de la méthode dans le composant, nous voyons cette erreur.
principalement le décalage dans le nombre de paramètres passés à la méthode lors de l'appel.
Je passais $ event dans la méthode onModelChange, qui n'est pas décalée dans la définition de la méthode.
dropdownChanged(){
console.log("dropdown changed");
}
dropdownChangedActual(evnt:any){
console.log("dropdown changed");
}
<select [(ngModel)]="myModel" (ngModelChange)="dropdownChanged($event)">
<option>.............</option>
</select>
Soit déclarer $ event ou tout paramètre que nous transmettons, soit transmettre les paramètres comme indiqué dans la définition de la méthode.
veuillez fournir le code du fichier image-display.component.html. il se peut que la variable du modèle ne soit pas initialisée sur le composant. Vérifiez toutes les variables que vous avez utilisées sur le modèle si elles existent sur ImageDisplayComponent.