You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中如何正确显示Strapi返回的Markdown格式富文本?

解决Angular中Markdown富文本渲染问题

直接使用插值语法{{content}}会让Angular自动转义HTML,同时Markdown标记本身不会被浏览器识别,所以需要先把Markdown转成HTML,再安全渲染。

步骤1:安装Markdown解析库

使用marked轻量库解析Markdown,执行安装命令:

npm install marked --save

步骤2:修改组件代码

导入marked和Angular安全处理工具,将Markdown内容转为安全可渲染的HTML:

import { dataservice } from './service';
import { Component, OnInit } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import marked from 'marked';

@Component({
  selector: 'app-your-component',
  templateUrl: './your-component.component.html',
  styleUrls: ['./your-component.component.css']
})
export class YourComponent implements OnInit {
  content: SafeHtml;

  constructor(
    private data: dataservice,
    private sanitizer: DomSanitizer
  ) {}

  ngOnInit(): void {
    this.getData();
  }

  getData(): void {
    this.dataservice.getContent().subscribe((res) => {
      // 解析Markdown为HTML,并标记为安全内容
      const markdownContent = res.attributes.content;
      const htmlContent = marked(markdownContent);
      this.content = this.sanitizer.bypassSecurityTrustHtml(htmlContent);
    });
  }
}

步骤3:修改模板代码

使用[innerHTML]属性渲染处理后的HTML内容:

<div [innerHTML]="content"></div>

完成以上修改后,Markdown的**Hello**会被解析为<strong>Hello</strong>,页面将显示加粗的Hello文本,实现期望的富文本效果。

内容的提问来源于stack exchange,提问作者kelvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:55:22