Angular:成员<function-name>不可调用

时间:2017-11-22 03:46:17

标签: angular

我将导入的函数分配给constructor中的组件属性,以便在template中使用它。

构建正常,但在我的编辑器(带有Angular语言服务的Visual Studio代码)中,显示以下错误。

Error

以下是导出功能的代码。

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;
    }
}

我无法理解显示此错误的原因。请帮忙!

2 个答案:

答案 0 :(得分:17)

我认为不是在组件文件中以这种方式声明下载文件

downloadFile: any;

你应该这样声明

downloadFile: () => any;

检查一下是否有帮助。

答案 1 :(得分:2)

万一它可以帮助别人,我也遇到了同样的问题,它是由具有相同方法名称的模板变量引起的,因此Angular试图调用模板变量,但它给出了此错误。例如:

// template
<form #foo (ngSubmit)="foo()">

// typescript
foo() {
...
}

它说: [Angular]成员foo是不可呼叫的