所以,我正在开发一个小型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>"
我得到以下输出:
为什么它在页面上打印HTML而不是渲染它?我应该使用JQuery或其他东西操纵DOM吗?我对JS很新,并决定在我去的时候学习Coffeescript,因为我听说过这样的好事。
答案 0 :(得分:3)
问题似乎是由于Handlebars在输出时转义了我的HTML。
我需要在我的Handlebars模板中使用{{{ formArrows }}}
,而不仅仅是{{ formArrows }}
。
这是我在询问之前没有阅读Handlebars文档的原因。