Как построить отрывок функциональности в угловых

0

Я создаю небольшую систему ведения блога в AngularJS + RoR для бэкэнд.

У меня есть записи, хранящиеся в моей базе данных, и содержимое сообщения хранится в столбце "Содержимое". Пример данных столбца содержимого - это.

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

Я хочу показать все свои сообщения в блоге на главной странице, например, в новостной ленте. Конечно, я не хочу показывать весь почтовый контент каждого сообщения. Скажем, что я хочу показать только первые 100 символов почтового контента.

до сих пор мне удалось обрезать теги html из строки, которую я показываю через собственный фильтр

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

и он используется следующим образом:

<div ng-bind-html="post.content | htmlToPlaintext"></div>

но результат выглядит следующим образом:

Hello how are you doing?how about you?

как вы, вероятно, заметили, что между предложениями нет пробелов.

Есть ли способ, как это исправить, или вы знаете о любом другом способе добавления функциональности выдержки в угловое приложение.

Любая помощь приветствуется.

1 ответ

1
Лучший ответ

Замените тег не на '', а пробелом:

angular.module('flapperNews').
  filter('htmlToPlaintext', function() {
    return function(text) {
      return text ? String(text).replace(/<[^>]+>/gm, ' ') : ''; // replace with a space
    };
  }
);
  • 0
    Я думаю, что я добавлю больше функциональности к фильтру позже, но сейчас это будет делать. Спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню