Bagaimana saya bisa menggunakan ng-repeat like for di Javascript?
contoh:
<div ng-repeat="4">Text</div>
Saya ingin mengulang dengan ng-repeat 4 kali tapi bagaimana caranya?
javascript
angularjs
Vural
sumber
sumber
items
..?Jawaban:
Angular dilengkapi dengan limitTo: filter batas, ini mendukung pembatasan item x pertama dan item x terakhir:
<div ng-repeat="item in items|limitTo:4">{{item}}</div>
sumber
items
Ini adalah solusi paling sederhana yang dapat saya pikirkan.
<span ng-repeat="n in [].constructor(5) track by $index"> {{$index}} </span>
Berikut contoh Plunker.
sumber
Error: [$parse:isecfld]
Anda dapat menggunakan metode slice pada objek array javascript
<div ng-repeat="item in items.slice(0, 4)">{{item}}</div>
Pendek dan manis
sumber
item in items|limitTo:4
di html:
<div ng-repeat="t in getTimes(4)">text</div>
dan di pengontrol:
$scope.getTimes=function(n){ return new Array(n); };
http://plnkr.co/edit/j5kNLY4Xr43CzcjM1gkj
EDIT:
dengan angularjs> 1.2.x
<div ng-repeat="t in getTimes(4) track by $index">TEXT</div>
sumber
t in [1,2,3,4]
ataut in 'aaaa'
dll :)[1,2,3,4]
.. Solusi yang menyedihkan yang satu iniJawaban yang diberikan oleh @mpm tidak berfungsi, itu memberikan kesalahan
Untuk menghindari ini bersama
menggunakan
seperti ini
sumber
Untuk mengulang 7 kali, cobalah untuk menggunakan sebuah array dengan panjang = 7 , maka melacak itu oleh $ index :
<span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span>
Untuk mengulang X kali:
hanya mengganti 7 dengan X .
sumber
Semua jawaban di sini tampaknya mengasumsikan bahwa item adalah sebuah larik. Namun, di AngularJS, itu mungkin juga menjadi objek. Dalam kasus tersebut, pemfilteran dengan limitTo maupun array.slice tidak akan berfungsi. Sebagai salah satu solusi yang mungkin, Anda dapat mengonversi objek Anda menjadi larik, jika Anda tidak keberatan kehilangan kunci objek. Berikut adalah contoh filter untuk melakukan hal itu:
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; } }; });
Setelah itu adalah sebuah array, gunakan slice atau limitTo, seperti yang dinyatakan dalam jawaban lain.
sumber