AngularJS limitTo使用HTML标签

Ser*_*aia 9 angularjs

我在AngularJS中有一些绑定,我想限制显示的字符长度.当你只有一个简单的文本内容时,这是一个非常简单的问题.

但是,我有包含HTML标记的文本:

$scope.text = "<span><h1>Example</h1><p>Special Text</p></span>"
Run Code Online (Sandbox Code Playgroud)

并且

$scope.maxNumberOfChar = 10;
Run Code Online (Sandbox Code Playgroud)

当我使用以下行时,它会计算考虑HTML标记的字符数.

哪个可能是解决此问题的最佳解决方案,只计算字符数,丢弃HTML标记?

提前致谢

Ser*_*aia 15

我使用简单的过滤器和正则表达式操作创建了一个解决方案.

var appFilters = angular.module('myApp.filters', [])
.filter('limitHtml', function() {
    return function(text, limit) {

        var changedString = String(text).replace(/<[^>]+>/gm, '');
        var length = changedString.length;

        return changedString.length > limit ? changedString.substr(0, limit - 1) : changedString; 
    }
})
Run Code Online (Sandbox Code Playgroud)

和通讯用法,类似于limitTo过滤器

<span ng-bind-html="text | limitHtml: maxNumberOfChar"></span>
Run Code Online (Sandbox Code Playgroud)

请注意,在这种情况下,我也使用html绑定,特定于我的解决方案.