angular2和window.URL.createObjectURL

时间:2016-09-27 21:14:46

标签: angular blob unsafe

我使用window.URL.createObjectURL创建一个blob:http链接,用于在img标记中预览所选图像:

<img src=""{{itemPhoto}}"" />

itemPhoto是在组件中定义的字段,在选择图像文件时分配:

selectPhoto(photos: any[]) {
    if (photos[0]) {
      this.itemPhoto = window.URL.createObjectURL(photos[0]);
    }
  }

这适用于angular2 RC1但不再适用于2.0.0。

以下是进入src属性的内容:

unsafe:blob:http://localhost:5555/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx

在阅读其他一些帖子之后我尝试了以下内容:

this.itemPhoto = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(photos[0]));

然后以下内容进入src属性:

unsafe:SafeValue must use [property]=binding: blob:http://localhost:5555/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx (see http://g.co/ng/security#xss)

有什么建议吗?

非常感谢

更新:好的,我真的不明白src里面的错误信息: &#34;不安全:SafeValue必须使用[property] = binding:...&#34;

以下工作代替src={{itemPhoto}}

<img [src]="itemPhoto" />

仍然不确定为什么。

1 个答案:

答案 0 :(得分:6)

您可以尝试说出错误。它说的是你必须使用property []绑定而不是interpolation {{}}和属性。

[src]="itemPhoto"