在我的Angular應用程序中,我構建了一個視圖,其目的是以便於打印的方式顯示數據。由角度過濾器截斷的打印字符串
不過,我還增加了顯示更多/更少的文字與角度filter
,削減strings
字符的預定義的數量,並允許用戶通過點擊一個按鈕,像這樣看,其餘的選項:{{elem | cut:!show[$index]:true:max}}
。
下面是完整的過濾器:
angular.module('pear').filter('cut', function() {
return function (value, enabled, wordwise, max, tail) {
if (!value) return '';
max = parseInt(max, 10);
if (!max) return value;
if(!enabled) return value;
if (value.length <= max) return value;
value = value.toString().substr(0, max);
if (wordwise) {
var lastspace = value.lastIndexOf(' ');
if (lastspace != -1) {
value = value.substr(0, lastspace);
}
}
return value + (tail || '...');
};
});
,這是它是如何結束了尋找:
有沒有一種方法來禁用此filter
的打印預覽,或以某種方式用@media print
強制css條件顯示全文?
供參考,這是我目前如何使用模板中的過濾器,如果需要使用不同的標記方法:
<div class="content"> {{elem | cut:!show[$index]:true:max}}
<span ng-show="!show[$index] && elem.length > max" class="show-more" ng-click="toggleShow($index)">more</span>
<span ng-show="show[$index]" class="show-more no-print" ng-click="toggleShow($index)">less</span>
</div>
爲什麼不添加第二個來顯示未截斷的字符串併爲其分配一些@media print css? – Trike
@Trike是的,這可能是最好的,如果不是唯一的方法。 – Tiago