如何从Angular服务类中的库访问导出的函数?

时间:2020-09-14 11:23:05

标签: angular typescript kendo-ui kendo-grid

很抱歉,对于某些人来说这可能是一个显而易见的问题,但是我对后端技术很有经验,因此到目前为止,我的直觉并没有帮助,我也无法提出完美的措辞让google帮助我。

我有一个角度库,其中导出了几个辅助函数,但是我不能从导入文件的类中调用它们。尽管它仅在类外部可用。如何在班级内部访问它?

导出函数的库:

export function saveAs(data: string | Blob, fileName: string, options?: SaveOptions): void;

我将其导入的类:

import * as FileSaver from '@progress/kendo-file-saver'

const dataURI = "data:text/plain;base64," + btoa("Hello World!");
//Below function call is resolved
FileSaver.saveAs(dataURI, 'test.txt', {       
    forceProxy: true,
    proxyURL: '/save-handler',
   });

@Injectable({providedIn: 'root'})
export class FileProxyService {
 
    constructor (){}
    private base64 ;
    
   //Below function call is not recognized
   FileSaver.saveAs(dataURI, 'test.txt', {            
    forceProxy: true,
    proxyURL: '/save-handler',
   });
}

1 个答案:

答案 0 :(得分:0)

在使用从其他来源导出的函数/方法之前,需要将对象注入到当前的ts文件中。

导入kendo-file-saver:

    import { FileSaver } from '@progress/kendo-file-saver';

并像这样更改您的构造函数:

    constructor(private fileSaver:FileSaver) {}

现在您有了一个名为fileSaver的Filesaver的(注入)对象,可以使用其SaveAs方法

    fileSaver.SaveAs(dataURI, 'test.txt', { 
    forceProxy: true,
    proxyURL: 'save-handler', });