首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >angularjs输出纯文本而不是html

angularjs输出纯文本而不是html
EN

Stack Overflow用户
提问于 2013-06-25 13:00:18
回答 5查看 116.2K关注 0票数 67

我有一些这样的文本:

代码语言:javascript
复制
<span>My text</span>

我想在没有标签的情况下显示:

代码语言:javascript
复制
My text

我也不想应用标签,我想剥离它们。有什么简单的方法可以做到这一点呢?

Angular html:

代码语言:javascript
复制
<div>{{myText | htmlToPlaintext}}</div>
EN

回答 5

Stack Overflow用户

发布于 2016-03-09 15:08:50

代码语言:javascript
复制
var app = angular.module('myapp', []);

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

<p>{{DetailblogList.description | htmlToPlaintext}}</p>
票数 4
EN

Stack Overflow用户

发布于 2015-12-08 22:05:49

为此,您希望使用内置的浏览器HTML条带,而不是应用regexp。它更安全,因为永远绿色的浏览器会为你做这些工作。

代码语言:javascript
复制
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;
}());

将其包装在自执行函数中的原因是为了重用元素创建。

票数 3
EN

Stack Overflow用户

发布于 2017-07-26 13:44:22

<div ng-bind-html="myText"></div>不需要像{{myText}}那样放入{{}}插值标签。

别忘了在var app = angular.module("myApp", ['ngSanitize']);这样的模块中使用ngSanitize

并在index.html页面https://cdnjs.com/libraries/angular-sanitize中添加其cdn依赖

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17289448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档