Angular2 - 提供的参数与调用目标的任何签名都不匹配
Angular2 - Supplied parameters do not match any signature of call target
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);
}
}
}
使用 AOT 编译时出现以下错误:
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.
请提供图像-display.component.html文件的代码。可能是模板上的变量未初始化到组件上。检查您在模板上使用的所有变量,如果它们存在于 ImageDisplayComponent 上。
AOT 强制您为每个方法调用通知每个强制参数。
在您的示例中,方法 ngOnChanges() 实际上应该是 ngOnChanges(changes: SimpleChanges)。
如果从 html 调用的方法与组件中方法的定义不匹配,我们会看到此错误。
调用时传递给方法的参数数量大多不匹配。
我在 onModelChange 方法中传递了 $event,它没有在方法定义中声明。
dropdownChanged(){
console.log("dropdown changed");
}
dropdownChangedActual(evnt:any){
console.log("dropdown changed");
}
<select [(ngModel)]="myModel" (ngModelChange)="dropdownChanged($event)">
<option>.............</option>
</select>
要么声明 $event 或我们传递的任何参数,要么传递方法定义中提到的参数。
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);
}
}
}
使用 AOT 编译时出现以下错误:
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.
请提供图像-display.component.html文件的代码。可能是模板上的变量未初始化到组件上。检查您在模板上使用的所有变量,如果它们存在于 ImageDisplayComponent 上。
AOT 强制您为每个方法调用通知每个强制参数。
在您的示例中,方法 ngOnChanges() 实际上应该是 ngOnChanges(changes: SimpleChanges)。
如果从 html 调用的方法与组件中方法的定义不匹配,我们会看到此错误。
调用时传递给方法的参数数量大多不匹配。
我在 onModelChange 方法中传递了 $event,它没有在方法定义中声明。
dropdownChanged(){
console.log("dropdown changed");
}
dropdownChangedActual(evnt:any){
console.log("dropdown changed");
}
<select [(ngModel)]="myModel" (ngModelChange)="dropdownChanged($event)">
<option>.............</option>
</select>
要么声明 $event 或我们传递的任何参数,要么传递方法定义中提到的参数。