1

所以基本上我想要实现的是以下几点:

页面上的所有文本都来自 JSON 文件。我有一项服务可以毫无问题地解析并将其打印到文档中。我现在的问题是,当将此文本写入 json 时,我对它的控制有限,我需要检测方括号 [Like This 2011] 内的任何内容并将其包装在标签中。

如果有人可以在 js 中帮助我并可能就在 angularjs 世界中实现该功能的最佳方法提供建议,我将不胜感激。(在控制器上执行?服务?在视图本身中?)

非常感谢T

4

2 回答 2

2

构建一个过滤器,实现带有括号标签的转换 JS 字符串 -> 带有普通标签的 HTML 字符串的逻辑。

编写过滤器很容易。它里面的逻辑可能更复杂,这取决于你需要什么。编写了过滤器(让我们命名它bracketXformer),它的用法是:

型号示例:

$scope.pageContent = {
    title: "The Title",
    content: "Bla bla [bla]"
};

模板示例:

<h2>{{ pageContent.title }}</h2>
<p>{{ pageContent.content | bracketXformer }}</p>

还可以在 Javascript 中搜索 Markdown 实现(例如Showdown)。如果它与您的用例匹配,可以为您节省一些实施过滤器的时间。如果 Markdown 适合你,也可以在这里寻找使用 Angular 指令的方法。

于 2013-09-11T14:10:19.180 回答
1

使用正则表达式

var text = 'some text [sup stuff] here';

document.write(text.replace(/\[(.*)\]/g, '<sup>$1</sup>'));

jsfiddle:http: //jsfiddle.net/uH9x2/

于 2013-09-11T14:16:37.283 回答