来self 的服务器的响应如下所示:

[{"coreGoalId":1,"title":"Core goal 1","infrastructure":"Sample Infrastructure","audience":"People","subGoals":null,"benefits":[{"benefitId":1,"what":"string","coreGoalId":1}],"effects":null,"steps":null,"images":[{"imagelId":1,"base64":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcU\nFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wgARCAIWAe4DASIA\nAhEBAxEB/8QAHAABAAIDAQEB"}]}]

我正在try 显示其中返回的base64图像.

在我的组件中:

ngOnInit() {

    this.homeService.getGoals()
    .subscribe(
        goals => this.coreGoals = goals,
        error =>  this.errorMessage = <any>error);
}

然后在模板中:

<ul>
    <li *ngFor="let goal of coreGoals">
        {{goal.title}}
        <img [src]="'data:image/jpg;base64,'+goal.images[0].base64 | safeHtml" />
    </li>
</ul> 

其中safeHtml是我创建的管道,如下所示:

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

@Pipe({name: 'safeHtml'})
export class SafeHtml {
  constructor(private sanitizer:DomSanitizer){}

  transform(html) {
    return this.sanitizer.bypassSecurityTrustHtml(html);
  }
}

这给了我Required a safe URL, got a HTML个错误.这里出了什么问题?如果我从<img />中删除管道,那么它会显示不安全的url.

推荐答案

你需要

bypassSecurityTrustResourceUrl(html);

而不是

bypassSecurityTrustHtml(html);

Angular相关问答推荐

将Angular 17中的http服务与独立组件一起使用

对子router-outlet 应用主机样式

独立组件;依赖项注入

截取提取后端S获取添加授权头的请求

Angular react 形式验证问题

如何捕获生命周期方法中抛出的Angular组件错误?

Angular 信号 - 使用 mutate() 与使用 forEach() react 性

区分material 手风琴

Angular 15 Ref 错误:初始化前无法访问组件 A

如何处理Angular 延迟订阅

在 Angular material表上调用 renderRows()

如何在两个模块之间共享服务 - @NgModule 在Angular 而不是在组件之间?

ngx-bootstrap modal:如何从模态中获取返回值?

请求 http.GET 时发送的 Angular2 OPTIONS 方法

Angular 2 中的 OnChanges 和 DoCheck 有什么区别?

Angular:找不到不同的支持对象[object Object]

Angular 2:将外部js文件导入组件

升级到 angular-6.x 会给出Uncaught ReferenceError: global is not defined

Angular CLI 为已经存在的组件创建 .spec 文件

如何在 Angular CLI 6: angular.json 中添加 Sass 编译?