我正在使用sanitizer.bypassSecurityTrustUrl在页面上放置指向blobURL的链接。只要我不编译项目,此方法就可以正常工作。

import {DomSanitizer} from '@angular/platform-browser';

export class AppComponent {
  constructor(private sanitizer: DomSanitizer) {
  }

  sanitize(url: string) {
    return this.sanitizer.bypassSecurityTrustUrl(url);
  }
}


清理功能采用如下网址:

blob:http://localhost:4200/7c1d7221-aa0e-4d98-803d-b9be6400865b


如果我使用AoT编译,则会收到以下错误消息:


  模块构建失败:错误:/.../ src / app / app.component.ts(18,3):
  导出类的公共方法的返回类型具有或正在使用名称
  来自外部模块的“ SafeUrl”
  “ /.../node_modules/@angular/platform-b​​rowser/src/security/dom_sanitization_service”
  但无法命名。)


我在Angular 2.1.0中使用CLI

有人知道我该如何解决这个问题?还是应该将其报告为错误?

最佳答案

所以看来我不得不在方法中添加SafeUrl的返回类型

  sanitize(url: string):SafeUrl {
    return this.sanitizer.bypassSecurityTrustUrl(url);
  }


非常感谢alxhub

10-05 20:30