Nasıl gibi ng tekrarı kullanabilirsiniz için JavaScript?
misal:
<div ng-repeat="4">Text</div>
4 kez ng-tekrar ile yinelemek istiyorum ama bunu nasıl yapabilirim?
Nasıl gibi ng tekrarı kullanabilirsiniz için JavaScript?
misal:
<div ng-repeat="4">Text</div>
4 kez ng-tekrar ile yinelemek istiyorum ama bunu nasıl yapabilirim?
items
..?
Yanıtlar:
Angular, bir limitTo: limit filtresi ile birlikte gelir, ilk x öğeyi ve son x öğeyi sınırlamayı destekler:
<div ng-repeat="item in items|limitTo:4">{{item}}</div>
items
Bu, aklıma gelen en basit çözümdür.
<span ng-repeat="n in [].constructor(5) track by $index">
{{$index}}
</span>
İşte bir Plunker örneği.
Error: [$parse:isecfld]
Javascript dizi nesnesinde dilim yöntemini kullanabilirsiniz
<div ng-repeat="item in items.slice(0, 4)">{{item}}</div>
Kısa n tatlı
item in items|limitTo:4
html'de:
<div ng-repeat="t in getTimes(4)">text</div>
ve kontrolörde:
$scope.getTimes=function(n){
return new Array(n);
};
http://plnkr.co/edit/j5kNLY4Xr43CzcjM1gkj
DÜZENLE :
açısal js> 1.2.x ile
<div ng-repeat="t in getTimes(4) track by $index">TEXT</div>
t in [1,2,3,4]
veya t in 'aaaa'
vb :)
[1,2,3,4]
.. Bu ne kasvetli bir çözüm
@Mpm tarafından verilen cevap çalışmıyor hata veriyor
Yineleyicide kopyalara izin verilmez. Benzersiz anahtarları belirtmek için "takip et" ifadesini kullanın. Tekrarlayıcı: {0}, Yinelenen anahtar: {1}
Bundan kaçınmak için
ng-tekrar = "getTimes (4) içinde t"
kullanım
$ endeksine göre izle
bunun gibi
<div ng-tekrar = "t in getTimes (4) $ endeksine göre parça"> METİN </div>
Tekrarlamak için 7 defa, bir bir dizi kullanmaya çalıştığınızda uzunluğu = 7 , sonra izlemek it tarafından $ endeksi :
<span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span>
b=[]
boş bir "b" Dizisi oluşturun,
.length=7
boyutunu "7" ye ayarlayın
&&b
, yeni "b" Dizisi ng-yinelemede kullanılabilir olsun,
track by $index
burada "$ indeks " yineleme konumudur.
ng-bind="$index + 1"
1'den başlayan ekran.
Tekrarlamak için X kere:
Sadece yerine 7 tarafından X .
Buradaki tüm cevaplar, öğelerin bir dizi olduğunu varsayıyor gibi görünüyor . Ancak, AngularJS'de bir nesne de olabilir. Bu durumda ne limitTo ne de array.slice ile filtreleme çalışmaz. Olası bir çözüm olarak, nesne anahtarlarını kaybetmeyi düşünmüyorsanız, nesnenizi bir diziye dönüştürebilirsiniz. İşte tam da bunu yapmak için bir filtre örneği:
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;
}
};
});
Bir dizi olduğunda, diğer yanıtlarda belirtildiği gibi dilim veya limitTo kullanın.