[javascript] AngularJs에서 X 번만 반복 ng-repeat
Javascript에서 for 와 같이 ng-repeat를 어떻게 사용할 수 있습니까?
예:
<div ng-repeat="4">Text</div>
ng-repeat로 4 번 반복하고 싶은데 어떻게하면 되나요?
답변
Angular는 limitTo : limit 필터와 함께 제공되며 첫 x 항목과 마지막 x 항목 제한을 지원합니다.
<div ng-repeat="item in items|limitTo:4">{{item}}</div>
답변
이것은 내가 생각할 수있는 가장 간단한 해결 방법입니다.
<span ng-repeat="n in [].constructor(5) track by $index">
{{$index}}
</span>
다음은 Plunker 예제입니다.
답변
자바 스크립트 배열 객체에서 슬라이스 방법을 사용할 수 있습니다.
<div ng-repeat="item in items.slice(0, 4)">{{item}}</div>
짧은 n 달콤한
답변
html에서 :
<div ng-repeat="t in getTimes(4)">text</div>
그리고 컨트롤러에서 :
$scope.getTimes=function(n){
return new Array(n);
};
http://plnkr.co/edit/j5kNLY4Xr43CzcjM1gkj
편집하다 :
angularjs> 1.2.x
<div ng-repeat="t in getTimes(4) track by $index">TEXT</div>
답변
@mpm이 제공 한 답변이 작동하지 않아 오류가 발생합니다.
repeater에서 중복은 허용되지 않습니다. 고유 키를 지정하려면 ‘추적 기준’표현식을 사용하십시오. 반복기 : {0}, 중복 키 : {1}
이것을 피하려면
ng-repeat = “t in getTimes (4)”
사용하다
$ index로 추적
이렇게
<div ng-repeat = “t in getTimes (4) track by $ index”> TEXT </ div>
답변
반복하려면 7 번으로 배열을 사용하려고 길이 = 7 다음, 추적 을 하여 $ 인덱스 :
<span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span>
b=[]
빈 배열«b»를 만들고
.length=7
크기를«7»로 설정
&&b
하고 새 배열«b»를 ng-repeat에 사용할 수 있도록합니다.
track by $index
여기서 «$ index» 는 반복 위치입니다.
ng-bind="$index + 1"
1부터 시작합니다.
반복합니다 X의 시간 :
단지 대체 (7) 에 의해 X .
답변
여기의 모든 답변은 항목 이 배열 이라고 가정하는 것 같습니다 . 그러나 AngularJS에서는 객체가 될 수도 있습니다. 이 경우 limitTo 또는 array.slice를 사용한 필터링은 작동하지 않습니다. 가능한 한 가지 해결책으로 객체 키를 잃어 버려도 괜찮다면 객체를 배열로 변환 할 수 있습니다. 다음은이를 수행하는 필터의 예입니다.
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;
}
};
});
배열이면 다른 답변에 명시된 것처럼 slice 또는 limitTo를 사용하십시오.