所以基本上我想要实现的是以下几点:
页面上的所有文本都来自 JSON 文件。我有一项服务可以毫无问题地解析并将其打印到文档中。我现在的问题是,当将此文本写入 json 时,我对它的控制有限,我需要检测方括号 [Like This 2011] 内的任何内容并将其包装在标签中。
如果有人可以在 js 中帮助我并可能就在 angularjs 世界中实现该功能的最佳方法提供建议,我将不胜感激。(在控制器上执行?服务?在视图本身中?)
非常感谢T
所以基本上我想要实现的是以下几点:
页面上的所有文本都来自 JSON 文件。我有一项服务可以毫无问题地解析并将其打印到文档中。我现在的问题是,当将此文本写入 json 时,我对它的控制有限,我需要检测方括号 [Like This 2011] 内的任何内容并将其包装在标签中。
如果有人可以在 js 中帮助我并可能就在 angularjs 世界中实现该功能的最佳方法提供建议,我将不胜感激。(在控制器上执行?服务?在视图本身中?)
非常感谢T
构建一个过滤器,实现带有括号标签的转换 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 指令的方法。
使用正则表达式
var text = 'some text [sup stuff] here';
document.write(text.replace(/\[(.*)\]/g, '<sup>$1</sup>'));
jsfiddle:http: //jsfiddle.net/uH9x2/