Comment puis-je utiliser ng-repeat comme pour Javascript?
exemple:
<div ng-repeat="4">Text</div>
Je veux itérer avec ng-repeat 4 fois, mais comment puis-je le faire?
javascript
angularjs
Vural
la source
la source
items
..?Réponses:
Angular est livré avec un filtre limitTo: limit, il prend en charge la limitation des x premiers éléments et des x derniers éléments:
<div ng-repeat="item in items|limitTo:4">{{item}}</div>
la source
items
C'est la solution de contournement la plus simple à laquelle je puisse penser.
<span ng-repeat="n in [].constructor(5) track by $index"> {{$index}} </span>
Voici un exemple de Plunker.
la source
Error: [$parse:isecfld]
Vous pouvez utiliser la méthode slice dans un objet de tableau javascript
<div ng-repeat="item in items.slice(0, 4)">{{item}}</div>
Court n doux
la source
item in items|limitTo:4
dans le html:
<div ng-repeat="t in getTimes(4)">text</div>
et dans le contrôleur:
$scope.getTimes=function(n){ return new Array(n); };
http://plnkr.co/edit/j5kNLY4Xr43CzcjM1gkj
ÉDITER :
avec angularjs> 1.2.x
<div ng-repeat="t in getTimes(4) track by $index">TEXT</div>
la source
t in [1,2,3,4]
out in 'aaaa'
etc :)[1,2,3,4]
.. Quelle triste solution celle-ciLa réponse donnée par @mpm ne fonctionne pas elle donne l'erreur
Pour éviter cela avec
utilisation
comme ça
la source
Pour répéter 7 fois, essayez d'utiliser un tableau avec une longueur = 7 , puis suivez- le par $ index :
<span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span>
Pour répéter X fois: il
suffit de remplacer 7 par X .
la source
Toutes les réponses ici semblent supposer que les éléments sont un tableau. Cependant, dans AngularJS, cela pourrait aussi bien être un objet. Dans ce cas, ni le filtrage avec limitTo ni array.slice ne fonctionnera. Comme solution possible, vous pouvez convertir votre objet en tableau, si cela ne vous dérange pas de perdre les clés d'objet. Voici un exemple de filtre pour faire exactement cela:
myFilter.filter('obj2arr', function() { return function(obj) { if (typeof obj === 'object') { var arr = [], i = 0, key; for( key in obj ) { arr[i] = obj[key]; i++; } return arr; } else { return obj; } }; });
Une fois qu'il s'agit d'un tableau, utilisez slice ou limitTo, comme indiqué dans d'autres réponses.
la source