我有我的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 –