我正在使用sanitizer.bypassSecurityTrustUrl
在页面上添加指向blobURL的链接。只要我没有AoT编译项目,这就可以正常工作。
import {DomSanitizer} from '@angular/platform-browser';
export class AppComponent {
constructor(private sanitizer: DomSanitizer) {
}
sanitize(url: string) {
return this.sanitizer.bypassSecurityTrustUrl(url);
}
}
sanitize函数采用如下URL:
blob:http://localhost:4200/7c1d7221-aa0e-4d98-803d-b9be6400865b
如果我使用AoT编译,我会收到以下错误消息:
模块构建失败:错误:/... / src / app / app.component.ts(18,3): 从导出的类返回公共方法的类型已经或正在使用名称 ' SafeUrl'来自外部模块 " /.../ node_modules / @角/平台的浏览器/ SRC /安全/ dom_sanitization_service" 但不能命名。)
我在Angular 2.1.0中使用CLI
有谁知道如何规避这个问题?或者它应该被报告为错误?
答案 0 :(得分:7)
答案 1 :(得分:0)
就我而言,我正在启动这样的属性:
public img64 = this.domSanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,' + this.base64Image);
导致同样的错误。
感谢@mottosson我做对了(只需添加类型SafeUrl):
public img64: SafeUrl = this.domSanitizer.bypassSecurityTrustResourceUrl('data:image/jpg;base64,' + this.base64Image);