2014-09-05 51 views
0

我正在尝试使用ng-repeat打印0到24模12的数字。 但我想这些数字显示为给定格式的打印编号

00 01 02 03 04 .... 11 00 01 02 ... 11 

,而不是

0 1 2 3... 11 0 1 2 .... 11 

能在这个角度做?

+0

看看这个问题:http://stackoverflow.com/questions/10073699/pad-a-number-with-leading-zeros-in-javascript – knutesten 2014-09-05 10:35:06

回答

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 }} 
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> 

请标记为答案,如果它回答您的问题

0

最小码_.str角填充过滤器:

jsFiddle

<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]; 
});