Coffeescript在页面上打印HTML,而不是呈现它

时间:2014-03-15 13:30:09

标签: javascript jquery html coffeescript meteor

所以,我正在开发一个小型Meteor项目,我编写了一个模板助手,它查看当前文档的属性(迭代它们以显示),并且在某一时刻,基于逻辑决策在这个属性上,应该相应地输出HTML。

逻辑工作正常,但是当我使用这个Coffeescript:

Template.formQuestion.helpers

    formArrows: ->

        maxOrder = Questions.findOne({},{sort: {"order", 1}}).order
        questionOrder = Questions.findOne(this._id, {fields: {'order': 1}}).order

        console.log "max order: #{maxOrder}, current order: #{questionOrder}"

        # Check to see what arrows to render
        if questionOrder == 1
            "<i class='fa fa-chevron-circle-down'></i>"
        else if questionOrder < maxOrder
            "<i class='fa fa-chevron-circle-up'></i> | <i class='fa fa-chevron-circle-down'></i>"
        else
            "<i class='fa fa-chevron-circle-up'></i>"

我得到以下输出:

Coffeescript Issue Example

为什么它在页面上打印HTML而不是渲染它?我应该使用JQuery或其他东西操纵DOM吗?我对JS很新,并决定在我去的时候学习Coffeescript,因为我听说过这样的好事。

1 个答案:

答案 0 :(得分:3)

问题似乎是由于Handlebars在输出时转义了我的HTML。

我需要在我的Handlebars模板中使用{{{ formArrows }}},而不仅仅是{{ formArrows }}

这是我在询问之前没有阅读Handlebars文档的原因。