用文本中的有效html替换url模式文本

时间:2015-09-22 11:05:37

标签: angularjs

我正在通过ng-repeat(jade语法)

输出一些消息数组
ul
    li(ng-repeat="m in messages") {{m.text}}

邮件中可能有网址,但由于我使用的是ng-repeat,因此网址将作为文字输出。 如何将包含网址链接的部分邮件替换为结果中的实际可点击链接?

例如消息是

"Take a look at http://www.example.com/example.png"

应该替换为

"Take a look at <a href="http://www.example.com/example.png" target="_blank">this link</a>"

它应该自动替换为ng-repeat块中的每条消息。

1 个答案:

答案 0 :(得分:0)

定义两个自定义过滤器

var app = angular.module('app', []);

app.filter('getlast', function() {
  return function(input) {
    var msgArray = input.split(' ');
    return msgArray.pop();
  };
});

app.filter('removelast', function() {
  return function(input) {
    return input.substr(0, input.lastIndexOf(" "));
  };
});

您的模板

<li ng-repeat="m in messages">
  {{m.text | removelast}}
  <a href="{{m.text | getlast}}">{{m.text | getlast}}</a>
</li>