html - 在 Angular 应用程序中将 json 文件(从 json-server)下载为 txt 或 json 或 csv 文件
问题描述
我已经json-server
在我的 Angular 应用程序中安装了它,它使我能够通过假 json API 将表单(由用户填写)保存到 json 文件中:
{
"extracts": [
{
"contentName": "xxx",
"contentType": "xxx",
"contentToStore": "xxx",
"id": 1
}
]
}
我也可以在我的http://localhost:3000/extracts
在我的html
模板中,我的表单被提交:
<form #postForm="ngForm" (ngSubmit)="onSubmitExtractions(postForm.value)">
在相应的组件中,我写了这段代码:
onSubmitExtractions(postData: Post) {
this
.dbService
.submitExtractions(postData)
.subscribe(
postData => {
this.jsonPosts.push(postData);
}
);
this
.dbService
.downloadExtractions(postData);
}
第一个片段写入 json 文件,服务脚本中包含以下代码:
submitExtractions(post: Post): Observable<Post> {
return this.httpClient.post<Post>(this.apiUrl, post, httpOptions);
}
这工作正常,我在一个 json 文件(假的 json 服务器数据库)中得到结果,第二个片段应该下载这个文件,它在服务脚本中的代码是这样的:
downloadExtractions(post: Post) {
const blob = new Blob([JSON.stringify(post, null, 2)], { type: 'application/json' });
if (blob) {
this.downloaded = 'The blob contains ' + blob.size + ' byte!';
} else {
this.downloaded = 'The download failed!';
}
}
为了实际下载 json 内容,我在代码中缺少什么?如何将此内容下载为csv或json甚至文本文件?
解决方案
请尝试此解决方案。它使用相同的 blob 和一些常量数据。
在 HTML 中
<a [href]="fileUrl" download="file.txt">DownloadFile</a>
在组件.ts
export class AppComponent implements OnInit {
name = 'Angular 5';
fileUrl;
constructor(private sanitizer: DomSanitizer) { }
ngOnInit() {
const data = 'some text';
const blob = new Blob([data], { type: 'application/octet-stream' });
this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));
}
}
如需参考,请访问:
https://stackblitz.com/edit/angular-blob-file-download-text-file?file=app%2Fapp.component.ts
推荐阅读
- hiveql - 为 SQL 中的每一列随机选择观察值
- javascript - 我如何优化这个 for 循环以在 PHP 上快速运行。在 javascript 上运行非常快
- node.js - 使用节点服务器连接到 MongoDB 的警告
- python - 在数据框中找到最频繁的对
- arrays - React // 在状态下显示映射数组的键
- html - 调整浏览器大小时,我的引导按钮有问题
- reactjs - 如何在 reactjs 中刷新 facebook like url(使用 facebook-sdk CDN)
- zend-framework - 让 Visual Studio Code 识别 Zend 框架库中的类
- image - 导航到图像文件 NGINX 时出现 404 错误
- kubernetes - 从文件或使用 json 修补配置映射