我的HTML字符串存储在我的数据库中(我的新帖子的内容)。
我知道要在我的视图中打印此html,我可以使用此
<div ng-bind-html="post.content"></div>
这很好,但是我想说我只打印前20个解析过的字符串。
有没有办法可以存储“ng-bind-html”的返回值以及刚刚使用的过滤器?
有没有更好的方法如何在角度创建摘录功能?
答案 0 :(得分:1)
您可以拥有自定义过滤器:
app.filter('ellipsis', function () {
return function (text, length) {
if (text.length > length) {
return text.substr(0, length) + '...';
}
return text;
}
});
你可以这样使用:
<div ng-bind-html="post.content | ellipsis:20"></div>
答案 1 :(得分:0)
我只是用npm模块创建了一些过滤器。
// stripTagsFilter.js
var striptags = require('striptags');
module.exports = function() {
return function(input) {
if (!input || !input.length) { return input; }
return striptags.apply(null, arguments);
}
};
// ellipsisFilter.js
var ellipsize = require('ellipsize');
module.exports = function() {
return ellipsize;
};
// wherever you do this stuff
.filter('ellipsis', require('./ellipsisFilter.js'))
.filter('stripTags', require('./stripTagsFilter.js'))
<!-- strip the tags, limit to 20 characters -->
<p>{{post.content | stripTags | ellipsis:20}}</p>
剥离标签可能会在剩余的文本中将句子压缩在一起,因此您可能还想添加一个过滤器来修复它。我建议space-sentences。
<p>{{post.content | stripTags | spaceSentences | ellipsis:20}}</p>