Uma maneira de repetir o número definido de vezes, em vez de repetir sobre a matriz?

Existe uma maneira de repetir um número definido de vezes, em vez de ter de iterar sempre sobre uma matriz?

Por exemplo, abaixo quero que o item da lista apareça 5 vezes assumindo $scope.number igual a 5, além de incrementar o número para que cada item da lista aumente como 1, 2, 3, 4, 5

Resultado desejado:

<ul>
   <li><span>1</span></li>
   <li><span>2</span></li>
   <li><span>3</span></li>
   <li><span>4</span></li>
   <li><span>5</span></li>
</ul>
Solução

No momento, ng-repeat só aceita uma coleção como parâmetro, mas você poderia fazer isso:

<ul>
    <li ng-repeat="i in getNumber(number)"><span>{{$index+1}}</span></li>
</ul>

E algures no teu controlador:

$scope.number = 5;
$scope.getNumber = function(num) {
    return new Array(num);   
}

Isto permitir-lhe-ia alterar o $scope.number para qualquer número que deseje e ainda manter a ligação que você're procura.

[Aqui está um violino][1] com um par de listas utilizando a mesma função getNumber.

**EDIT 1/6/2014***: Novas versões do Angular 1.x fazem uso da seguinte sintaxe:

<li ng-repeat="i in getNumber(number) track by $index">

**EDIT 9/25/2018***: As novas versões do Angular 1.x permitem-lhe fazer isto sem uma função. Se o seu código é simples e você não'não precisa de uma função getNumber por outras razões, você pode agora omitir isso e apenas fazer isso:

<div ng-repeat="x in [].constructor(number) track by $index">

Crédito a @Nikhil Nambiar da sua resposta abaixo para esta actualização

Comentários (15)

Aqui está um exemplo de como você poderia fazer isso. Note que fui inspirado por um comentário nos documentos ng-repeat: http://jsfiddle.net/digitalzebra/wnWY6/

Repare na directiva de repetição de ng-repeat:

<div ng-app>
    <div ng-controller="TestCtrl">
        <div ng-repeat="a in range(5) track by $index">{{$index + 1}}</div>
    </div>
</div>

Aqui está o controlador:

function TestCtrl($scope) {
    $scope.range = function(n) {
        return new Array(n);
    };
};
Comentários (1)

Acho que isto [jsFiddle][1] a partir deste thread pode ser o que você're procura.

<div ng-app ng-controller="Main">
   <div ng-repeat="item in items | limitTo:2">
       {{item.name}}
   </div>
</div>
Comentários (6)