以下建议的方法是什么:
应通过按钮下载实体数组。该按钮名为npm start
,应该可以完全执行此操作,而不会强制用户“右键单击并将网站另存为...”。
我有一个实体Download transactions
和一个包含它的数组。
实体:
Transaction
这是我将此数组作为文件下载的最后一次尝试:
export class Transaction {
title: string;
category: string;
period: string;
value: string;
}
这会在当前窗口中加载包含结果的选项卡,但是作为纯文本而不是可下载文件。
我知道有很多关于这个话题的问题,我发现没有人为我工作。任何帮助表示赞赏! :)
答案 0 :(得分:3)
您正在寻找以下功能:
function download(blob, filename) {
if (window.navigator.msSaveOrOpenBlob) // IE10+
window.navigator.msSaveOrOpenBlob(blob, filename);
else { // Others
var a = document.createElement("a"),
url = URL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
然后
exportJson(): void {
console.log(this.transactions)
const c = JSON.stringify(this.transactions);
const file = new Blob([c], {type: 'text/json'});
download(file,"fileName.json");
}