我有我的HTML字符串存储在我的数据库(我的新帖子的内容)。AngularJS摘录功能
我知道,打印这个网站在我看来,我可以用这个
<div ng-bind-html="post.content"></div>
这是完全正常的,但让我们说,我想打印解析字符串的只有前20个characers。
有没有办法如何将“ng-bind-html”的返回值和刚使用过滤器存储在它上面?
有没有更好的方式来创建角度的摘录功能?
我有我的HTML字符串存储在我的数据库(我的新帖子的内容)。AngularJS摘录功能
我知道,打印这个网站在我看来,我可以用这个
<div ng-bind-html="post.content"></div>
这是完全正常的,但让我们说,我想打印解析字符串的只有前20个characers。
有没有办法如何将“ng-bind-html”的返回值和刚使用过滤器存储在它上面?
有没有更好的方式来创建角度的摘录功能?
你可以有一个自定义过滤器:
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>
,这里是一个演示:http://jsfiddle.net/FfT6s/348/
这并不完全工作。它会计数html字符。他只想计算文字。 – m59
yes as @ m59 says我想计算文本 –
然后,这可能是您希望在服务器上这样做的一种方式,并将此信息作为属性返回给您的视图模型。 –
我刚刚创建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>
您可以创建自定义过滤器:https://docs.angularjs.org/guide/filter –