我将导入的函数分配给constructor
中的组件属性,以便在template
中使用它。
构建正常,但在我的编辑器(带有Angular语言服务的Visual Studio代码)中,显示以下错误。
以下是导出功能的代码。
export function downloadFile(fileUrl: string, fileName: string) {
let a = document.createElement('a');
a.href = fileUrl;
a.download = fileName;
a.click();
}
以下是我在组件中的代码。
import { downloadFile } from '../../shared/utilities';
@Component({
...
})
export class SomeComponent {
downloadFile: any;
constructor() {
this.downloadFile = downloadFile;
}
}
我无法理解显示此错误的原因。请帮忙!
答案 0 :(得分:17)
我认为不是在组件文件中以这种方式声明下载文件
downloadFile: any;
你应该这样声明
downloadFile: () => any;
检查一下是否有帮助。
答案 1 :(得分:2)
万一它可以帮助别人,我也遇到了同样的问题,它是由具有相同方法名称的模板变量引起的,因此Angular试图调用模板变量,但它给出了此错误。例如:
// template
<form #foo (ngSubmit)="foo()">
// typescript
foo() {
...
}
它说: [Angular]成员foo
是不可呼叫的