当前位置 : 主页 > 网页制作 > JQuery >

无法在JQuery tmpl中的文本字符串上运行html

来源:互联网 收集:自由互联 发布时间:2021-06-15
在我的项目中的 JQuery模板中,我试图写出一个不对HTML进行编码的HTML字符串变量.当我像这样输出变量时: ${description} 它导致原始HTML字符串输出标签,所有这些都是这样的: ptext bbold/b i
在我的项目中的 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;
    }

但仍然没有骰子.

答案是:

{{html description}}

我很早就尝试过,但因为我在大括号内留下了杂散空间,所以它没有正确解释.

网友评论