[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를 사용하십시오.