如何在角度中构建摘录功能

时间:2015-11-08 18:05:37

标签: javascript ruby-on-rails angularjs

我在AngularJS + RoR中为后端创建小型博客系统。

我的数据库中存有帖子,帖子内容存储在"内容"柱。内容列数据的示例是这样的。

[UIImage imageNamed:@"tut_1.jpeg"]

我想在主页上显示我的所有博客帖子,就像新闻源一样。当然,我不想显示每篇文章的全部帖子内容。让我们说我只想显示帖子内容的前100个字符。

到目前为止,我设法修剪了通过自定义过滤器显示的字符串中的html标签

<p>Hello how are you doing?</p><p>how about you?</p>

它的用法如下:

angular.module('flapperNews').
  filter('htmlToPlaintext', function() {
    return function(text) {
      return  text ? String(text).replace(/<[^>]+>/gm, '') : '';
    };
  }
);

但输出看起来像这样

<div ng-bind-html="post.content | htmlToPlaintext"></div>
你可能已经注意到现在句子之间没有空格了。

有什么方法可以解决这个问题,或者您是否知道如何将其摘录功能添加到角度应用程序中。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

不使用''替换标记,但使用空格:

angular.module('flapperNews').
  filter('htmlToPlaintext', function() {
    return function(text) {
      return text ? String(text).replace(/<[^>]+>/gm, ' ') : ''; // replace with a space
    };
  }
);