角度降价解析"n"换行符问题



我创建了一个博客,其中 markdown 从后端作为字符串返回,但是当我返回带有正确换行符的字符串时,它的行为不符合预期。

我正在使用 ngx-markdown 来处理 markdown 字符的解析,并使用ngPreserveWhitespaces属性来确保它应该按预期运行。

例:

// Example #1 Returned String
"## This is a subheadern This is a sentence"
// Output
<h2>This is a subheadern This is a sentence</h2>

它将其显示为单行,换行符物理呈现为文本,如上所述。

但是,在我的任何 Angular 组件中,我可以将相同的字符串作为组件上的属性写入并返回它,它正确呈现如下:

// Example #2 Hard Coded String
public correct: string = "## This is a subheadern This is a sentence";
// Output
<h2>This is a subheader</h2>
<p>This is a sentence</p>

如前所述,我正在使用的降价解析器是这样实现的:

<markdown ngPreserveWhitespaces>{{content}}</markdown>

我还尝试通过在 main/tsconfig 文件中设置ngPreserveWhitespaces来做到这一点。但是我不相信这就是问题所在,因为我可以(在 JS)控制台中原生.log我返回的字符串 和硬编码字符串 甚至我该死的日志都显示不同(后者格式正确,前者只是字符串输出)。

我尝试过:

  • JSON 以多种方式(以及没有)字符串化/解析数据
  • 我尝试使用正则表达式手动替换字符
  • 我尝试手动使用<br />
  • 我已经尝试了此处概述的有关此 markdown 解析器处理空格的所有内容(我认为这不是问题所在)

似乎没有什么能安抚新行的神。

解决方案

好的,所以我找到了我的解决方案,我现在将我的降价字符串存储如下:

"## This is a subheadern This is a sentence"

这里的区别是我存储它的接口(Mongo db)已经将语音标记放在字符串值周围,所以现在实际上看起来像这样:

""## This is a subheadern This is a sentence""

MongoDB Compass比我正在尝试的更奇怪。

由此,我能够正确解析该值(以前它尝试使用无效的 JSON 字符串执行此操作,因为它没有包含在双语音标记中)。

我现在正在为其中每个称为HtmlPropertyProperty类的扩展中处理这个问题,该类在实例化时会正确解析值。

最新更新