0

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

我想出了如何在香草 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='highlighted'>玉米有成千上万种用途... span class='highlighted'>所有这些 span class='highlighted'>我现在就告诉你。

4

1 回答 1

0

您可以使用Handlebars.SafeString,如 Handlebars文档中所示。在您的情况下,您可以执行以下操作:

if (Meteor.isClient) {
  Template.sampleText.someText = function() {
    var element = str.replace(regEx, ("span class='highlighted'>" + "$&" + "</span>") );
    return new Handlebars.SafeString(element);
  };
}
于 2013-11-05T03:38:08.603 回答