基本上我想要实现的目标如下:
页面上的所有文本都是从JSON文件中提供的。我有一个服务,解析并打印到文档没有问题。我现在的问题是,当这个文本被写入json时,我对它的控制有限,我需要检测方括号内的任何内容[Like This 2011]并将其包装在标签中。
如果有人可以帮助我解决这个问题并且可能建议在angularjs世界中实现它的最佳方法,我会很感激..(在控制器上做?服务?在视图本身?)< / p>
非常感谢 Ť
答案 0 :(得分:2)
构建一个过滤器,用于实现带有括号标记的转换JS字符串的逻辑 - &gt;带有普通标签的HTML字符串。
Writing a filter很简单。它内部的逻辑可能更复杂,具体取决于您的需求。编写过滤器(让我们将其命名为bracketXformer
)后,其用法为:
模型示例:
$scope.pageContent = {
title: "The Title",
content: "Bla bla [bla]"
};
模板示例:
<h2>{{ pageContent.title }}</h2>
<p>{{ pageContent.content | bracketXformer }}</p>
还在Javascript中搜索Markdown实现(例如Showdown)。如果它与您的用例匹配,可以节省您实施过滤器的时间。如果Markdown适合你,也可以使用Angular指令查看here。
答案 1 :(得分:1)
使用正则表达式
var text = 'some text [sup stuff] here';
document.write(text.replace(/\[(.*)\]/g, '<sup>$1</sup>'));
jsfiddle:http://jsfiddle.net/uH9x2/