У меня есть какой-то текст вроде этого:
<span>My text</span>
Я хочу, чтобы отобразить без тегов:
My text
Я также Дон'т хотите применить теги, я хочу, чтобы раздеть их. Что'ы простой способ сделать это?
Угловой HTML-код:
<div>{{myText | htmlToPlaintext}}</div>
jQuery-это примерно в 40 раз медленнее, пожалуйста, не использовать jQuery для этой простой задачи.
function htmlToPlaintext(text) {
return text ? String(text).replace(/<[^>]+>/gm, '') : '';
}
использование :
var plain_text = htmlToPlaintext( your_html );
angular.module('myApp.filters', []).
filter('htmlToPlaintext', function() {
return function(text) {
return text ? String(text).replace(/<[^>]+>/gm, '') : '';
};
}
);
использование :
<div>{{myText | htmlToPlaintext}}</div>
от https://docs.angularjs.org/api/ng/function/angular.element
угловые.элемент
обертывания сырьевой элемент DOM или HTML-строку в качестве элемента в jQuery (если jQuery недоступен, угловые.делегаты элемент угловой'встроенный подмножество jQuery, то название "на jQuery лайт" или "jqLite.&и")
Так что вы просто могли бы сделать:
angular.module('myApp.filters', []).
filter('htmlToPlaintext', function() {
return function(text) {
return angular.element(text).text();
}
}
);
Использование:
<div>{{myText | htmlToPlaintext}}</div>
var app = angular.module('myapp', []);
app.filter('htmlToPlaintext', function()
{
return function(text)
{
return text ? String(text).replace(/<[^>]+>/gm, '') : '';
};
});
<p>{{DetailblogList.description | htmlToPlaintext}}</p>
в <div с НГ-привязать к HTML=и"myText" и></дел>
Не нужно ставить в HTML {{}} интерполяции теги, как вы сделали {{myText}}.
и Дон'т забывайте использовать ngSanitize в модуль, как напр. помощью VAR приложение = угловой.модуль (на"приложение" и, ['ngSanitize']);`
и добавить его зависимость CDN в разделе index.html https://cdnjs.com/libraries/angular-sanitize
Вы хотите использовать встроенный браузер HTML молдинг, что вместо того, чтобы применить себя регулярное выражение. Это более безопасно, так как все зеленые браузер делает работу за вас.
angular.module('myApp.filters', []).
filter('htmlToPlaintext', function() {
return function(text) {
return stripHtml(text);
};
}
);
var stripHtml = (function () {
var tmpEl = $document[0].createElement("DIV");
function strip(html) {
if (!html) {
return "";
}
tmpEl.innerHTML = html;
return tmpEl.textContent || tmpEl.innerText || "";
}
return strip;
}());
Причина для того, чтобы обернуть его в самоисполняющиеся функция предназначена для повторного создания элемента.
Использовать НГ-привязать к HTML-это единственный правильный и простой способ
Используйте эту функцию, как
String.prototype.text=function(){
return this ? String(this).replace(/<[^>]+>/gm, '') : '';
}
"<span>My text</span>".text()
output:
My text
[Скрипка][1]