javascript - angularjs для вывода обычного текста вместо html




4 Answers

от https://docs.angularjs.org/api/ng/function/angular.element

angular.element

обертывает необработанный элемент DOM или HTML-строку как элемент jQuery (если jQuery недоступен, делегаты углового.элемента для встроенного подмножества Angular в jQuery, называемые jQuery lite или jqLite.)

Таким образом, вы просто можете сделать:

angular.module('myApp.filters', []).
  filter('htmlToPlaintext', function() {
    return function(text) {
      return angular.element(text).text();
    }
  }
);

Применение:

<div>{{myText | htmlToPlaintext}}</div>
javascript html angularjs

У меня есть текст вроде этого:

<span>My text</span>

Я хочу показывать без тегов:

My text

Я также не хочу применять теги, я хочу их разбить. Какой простой способ сделать это?

Угловой html:

<div>{{myText | htmlToPlaintext}}</div>



<div ng-bind-html="myText"></div> Не нужно помещать теги интерполяции html {{}}, как вы {{myText}}.

и не забывайте использовать ngSanitize в модуле, например, var app = angular.module("myApp", ['ngSanitize']);

и добавьте его зависимость cdn в странице index.html https://cdnjs.com/libraries/angular-sanitize




Вы можете использовать ng-bind-html, не забудьте ввести $ sanitize service в свой модуль. Надеюсь, что это поможет




Используйте эту функцию как

 String.prototype.text=function(){
   return this ? String(this).replace(/<[^>]+>/gm, '') : '';
 }

  "<span>My text</span>".text()
  output:
  My text

Fiddle






Related