我正在尝试使用ng-repeat
打印0到24 mod 12的数字。
但我希望数字显示为
00 01 02 03 04 .... 11 00 01 02 ... 11
而不是
0 1 2 3... 11 0 1 2 .... 11
这可以用角度来完成吗?
答案 0 :(得分:1)
你可以定义一个'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 }}
答案 1 :(得分:0)
这就是我为你所做的: 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>
如果它回答了您的问题,请标记为答案
答案 2 :(得分:0)
_.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];
});