Pug 模板不会渲染传递给它的原始 HTML

For*_*son 2 html templates node.js express pug

我有一个哈巴狗模板,当单击我的网页上的按钮时,该模板会呈现并显示给用户。我遇到了 pug 将 HTML 标签渲染为原始文本的一部分而不是解析文本并将其添加为 DOM 节点的问题。

我的哈巴狗模板看起来像:p #{object.property}所以尝试将 HTML 字符串插入到模板中。

该属性包含一个 HTML 字符串,如下所示:

<p>Here is some text I'm trying to render</p>

我尝试过使用#{object.property}奇怪的渲染问题,它<在页面中渲染,然后是文本内容。我很确定这是由哈巴狗读取<纯文本和p哈巴狗元素引起的,这是有意义的。

这就是渲染网页上的渲染效果。

<
Here is some text I'm trying to render

>Here is some text I'm trying to render

>
Run Code Online (Sandbox Code Playgroud)

我想要完成的是在我的 pug 模板中引用有效的 HTML 字符串,并让 pug 将其呈现为 DOM 节点。

不幸的是,没有标签的 HTML 字符串是不可能的。

非常感谢任何回复。

注意:使用 Pug 2.0.0-beta-11

lit*_*tel 5

为了在传递给模板的字符串中保留 HTML,您需要使用非转义字符串插值。您需要一个感叹号,而不是括号前的数字符号。所以#{object.property}应该是!{object.property}

  • 因此,所做的就是在“!”所在的列中创建“意外文本”错误。出现。我相信这种语法在 Jade 的早期版本中是有效的。 (3认同)
  • 实际上,从头开始,它确实有效,但前提是您明确定义了父元素。所以 `div !{object.property}` 可以工作,但 `!{object.property}` 本身不行。我还没有广泛测试这个理论,但这是我到目前为止的理解。不过还是谢谢你的提醒!+1 (2认同)