我正在尝试使用ng-repeat
打印0到24模12的数字。 但我想这些数字显示为给定格式的打印编号
00 01 02 03 04 .... 11 00 01 02 ... 11
,而不是
0 1 2 3... 11 0 1 2 .... 11
能在这个角度做?
我正在尝试使用ng-repeat
打印0到24模12的数字。 但我想这些数字显示为给定格式的打印编号
00 01 02 03 04 .... 11 00 01 02 ... 11
,而不是
0 1 2 3... 11 0 1 2 .... 11
能在这个角度做?
你可以定义一个 'ZEROPAD' 过滤器,这样的:
angular.module('myModule', [])
.filter('zeroPad', function() {
return function (n, length) {
var num = parseInt(n, 10);
length = parseInt(length, 10);
if (isNaN(num) || isNaN(length)) {
return n;
}
num = '' + num;
while (num.length < length) {
num = '0' + num;
}
return num;
};
});
,然后用它在你看来是这样的:
{{ myNumber | zeroPad: 2 }}
在这里我做了什么你: http://plnkr.co/edit/BlodIO1TvG3uGzncjM75?p=preview
创建自定义过滤器选项是这样的:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.numbers = [];
for (var i = 1; i < 24; i++)
$scope.numbers.push(i);
});
app.filter('padding', function() {
return function(input) {
var n = input;
return (n < 10) ? '0' + n : n;
}
});
而在HTML页面:
<ul>
<li ng-repeat="number in numbers">
{{number % 12 | padding}}
</li>
</ul>
请标记为答案,如果它回答您的问题
最小码_.str
角填充过滤器:
<div ng-app="app" ng-controller="PadController">
<div ng-repeat="num in nums">{{ num | _.str: 'pad':[2, '0'] }}</div>
</div>
angular.module('app', ['underscore.string']).controller('PadController', function ($scope) {
$scope.nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
});
看看这个问题:http://stackoverflow.com/questions/10073699/pad-a-number-with-leading-zeros-in-javascript – knutesten 2014-09-05 10:35:06