在angular2应用程序(rc1)中,我将一些数据存储在localstorage中。我想让用户可以将数据存储在一个文件中,并将其导入到不同的系统或浏览器中。由于消毒,很难找到如何做到这一点。最后我来到了这个解决方案。
import { DomSanitizationService } from '@angular/platform-browser';
import { UserdataService } from '../shared';
export class ExportComponent {
constructor(private userdata: UserdataService, sanitizer:DomSanitizationService) {
let dataString = JSON.stringify(userdata.getDataObject());
let blob = new Blob([dataString], { type: 'application/json' });
this.downloadurl =
sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(blob));
}
我在模板中使用
<a [href]="downloadurl" download="data.json" >Download</a>
我在@ angular / platform-browser / src / security / dom_sanitization_service.d.ts中通过猜测和grepping找到了sanitizer及其方法bypassSecurityTrustUrl。我找不到任何文件。
这是解决这个问题的正确方法吗?如果我省略了绕过安全信任的调用,则URL会以unsafe:
为前缀,这会使其无法正常运行。是否有一些我遗漏的文件?
答案 0 :(得分:1)
是的,DomSanitizationService文档在这里:
https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html
答案 1 :(得分:0)
现在http://g.co/ng/security有更完整的文档(虽然没有特定的blob - 但你的代码很好!)。