我正在使用
我想做的事
会发生什么
提供的参数与呼叫目标的任何签名都不匹配。
我尝试了什么
组件HTML
以下是导致此问题的HTML代码段。我从输入字段中获取值并将它们推送到函数中。在运行“构建 - 守望”时,我没有任何问题,一切正常。只有在' prod'命令我在终端
中收到错误
<div class="vs__details__actions">
<button class="vs__button"
[disabled]="!selectedFiles"
(click)="submitForm(newTitle.value, newReference.value, newDate.value, newAuditorName.value, newCompanyName.value); newTitle.value='';
newReference.value=''; newDate.value=''; newAuditorName.value=''; newCompanyName.value=''">
Add
</button>
</div>
&#13;
组件手稿文件
import { Component, OnInit } from '@angular/core';
import { ProjectsAddService } from './projects-add.service';
import { Upload } from './upload';
import * as _ from "lodash";
@Component({
selector: 'upload-form',
templateUrl: './projects-add.component.html',
styleUrls: ['./projects-add.component.css']
})
export class ProjectsAddComponent {
selectedFiles: FileList;
currentUpload: Upload;
constructor(private upSvc: ProjectsAddService) { }
detectFiles(event) {
this.selectedFiles = event.target.files;
}
uploadSingle() {
let file = this.selectedFiles.item(0)
this.currentUpload = new Upload(file);
}
submitForm(title: string, reference: string, date: string, auditorName: string, newCompanyName: string, upload: Upload) {
let file = this.selectedFiles.item(0)
this.currentUpload = new Upload(file);
this.upSvc.submitForm(title, reference, date, auditorName, newCompanyName, this.currentUpload);
}
}
&#13;
非常感谢任何帮助:)
答案 0 :(得分:3)
使用--prod
(生产模式),angular-cli将使用AoT(Ahead of Time编译)。
AoT对类型,签名和内容更加明智。
您的submitForm
函数需要一个(非可选的)upload: Upload
参数作为最后一个参数,您不会点击该参数。
这里有两个选项:
首先(和建议)方式:将其设为可选,如submitForm(title: string, reference: string, date: string, auditorName: string, newCompanyName: string, upload?: Upload)
替代方法:在模板的最后一个参数处传递null
。
希望它有所帮助。
更新:在您编辑了问题和评论后,我应该在这里添加第三个选项:如果您的函数中没有使用该参数,请删除该参数。
答案 1 :(得分:1)
您的提交表单需要6个参数,并且您在模板中使用5个值调用该函数。 您错过了&#34;上传&#34;。
的价值