在我项目的 JQuery 模板中,我试图写出一个变量,它是一个 HTML 字符串,而不对 HTML 进行编码。当我像这样输出变量时:
${description}
它会导致原始 HTML 字符串与标签一起输出,就像这样:
<p>text <b>bold</b> <i>italic</i></p>
但是当我尝试将标记转换为代码中相同位置的真实标签时:
{{html $description}}
不输出任何东西!
我尝试了无数种传递变量的方法,但我认为 html 例程中发生了一些事情,我没有得到。
谢谢。
更新:
这是它的调用方式:
this.$el.attr('data-id', tmplData.id).
data('id', tmplData.id).html($.tmpl(this.template, tmplData));
其中 this.template 是模板文件,tmplData 是 JSON,其中包括 $description 和其他所需的变量。
另一个更新:
{{html '<p>string</p>'}}
确实按预期运行。但
{{html $another_variable}}
即使 $another_variable 中没有 HTML,也无法产生任何输出。
另一个更新:
我也试过:
${$item.html(description)}
并将对模板的调用更改为
this.$el.attr('data-id', tmplData.id).
data('id', tmplData.id).
html($.tmpl(this.template, tmplData, {
truncate: _.truncateStrip,
html: _.html,
}));
并编写了一个自定义的 html 例程来按照建议的方式传递字符串:
html: function(str) {
return str;
}
但仍然没有骰子。