我在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绑定,特定于我的解决方案.
| 归档时间: |
|
| 查看次数: |
5347 次 |
| 最近记录: |