在我的项目的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}}


我很早就尝试过,但是由于我在花括号内留了一些空格,因此无法正确解释。

:-(

07-24 09:50
查看更多