将HTML传递给Meteor中的模板

时间:2013-11-05 02:25:54

标签: regex meteor handlebars.js

我正在制作我的第一个Meteor应用程序 - 正则表达式匹配器是我正在制作的第一个组件。它将通过用span标记包围匹配来突出显示可编辑字符串中的匹配项。

我想出了如何在vanilla JavaScript中围绕匹配创建标记: http://jsbin.com/iXUVUJA/1/

但是我将其添加到Meteor模板中的方式,标签正在浏览器中显示。有没有办法在浏览器中将标签读作html?

以下是我的.js文件中的相关代码:

var str = "There are thousands and thousands of uses for corn... All of which I will tell you about right now.";
var regEx = /[A-Z]/g;

if (Meteor.isClient) {
  Template.sampleText.someText = function() {
    return str.replace(regEx, ("span class='highlighted'>" + "$&" + "</span>") );
  };
}

以下是我的.html文件中的相关代码:

<template name="sampleText">
  {{someText}}
</template>

这是服务器页面上的输出:

span class ='highlight'&gt;有成千上万的玉米用途... span class ='highlight'&gt;所有这些都涵盖class ='highlight'&gt;我现在就告诉你。

1 个答案:

答案 0 :(得分:0)

您可以使用Handlebars.SafeString,如句柄documentation中所示。在你的情况下,你可以这样做:

if (Meteor.isClient) {
  Template.sampleText.someText = function() {
    var element = str.replace(regEx, ("span class='highlighted'>" + "$&" + "</span>") );
    return new Handlebars.SafeString(element);
  };
}