Jak mogę używać ng-repeat like for w Javascript?
przykład:
<div ng-repeat="4">Text</div>
Chcę wykonać iterację z powtórzeniem ng 4 razy, ale jak mogę to zrobić?
javascript
angularjs
Vural
źródło
źródło
items
..?Odpowiedzi:
Angular zawiera filtr limitTo: limit, obsługuje ograniczanie pierwszych x elementów i ostatnich x elementów:
<div ng-repeat="item in items|limitTo:4">{{item}}</div>
źródło
items
To najprostsze obejście, jakie mogłem wymyślić.
<span ng-repeat="n in [].constructor(5) track by $index"> {{$index}} </span>
Oto przykład Plunkera.
źródło
Error: [$parse:isecfld]
Możesz użyć metody wycinka w obiekcie tablicy javascript
<div ng-repeat="item in items.slice(0, 4)">{{item}}</div>
Krótkie i słodkie
źródło
item in items|limitTo:4
w html:
<div ng-repeat="t in getTimes(4)">text</div>
aw kontrolerze:
$scope.getTimes=function(n){ return new Array(n); };
http://plnkr.co/edit/j5kNLY4Xr43CzcjM1gkj
EDYTOWAĆ :
z angularjs> 1.2.x
<div ng-repeat="t in getTimes(4) track by $index">TEXT</div>
źródło
t in [1,2,3,4]
lubt in 'aaaa'
itp. :)[1,2,3,4]
… Co za fatalne rozwiązanieOdpowiedź udzielona przez @mpm nie działa, powoduje błąd
Aby tego uniknąć wraz z
posługiwać się
lubię to
źródło
Aby powtórzyć 7 razy, spróbuj użyć tablicy o długości = 7 , a następnie śledź ją według $ index :
<span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span>
Aby powtórzyć X razy:
po prostu zastąpić 7 przez X .
źródło
Wszystkie odpowiedzi wydają się zakładać, że elementy są tablicą. Jednak w AngularJS równie dobrze może to być obiekt. W takim przypadku nie będzie działać ani filtrowanie za pomocą limitTo ani array.slice. Jednym z możliwych rozwiązań jest konwersja obiektu na tablicę, jeśli nie masz nic przeciwko utracie kluczy obiektów. Oto przykład filtru, który to robi:
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; } }; });
Gdy jest to tablica, użyj plastra lub limitTo, jak podano w innych odpowiedziach.
źródło