codememo

ng-syslog는 시작 인덱스를 지정합니다.

tipmemo 2023. 3. 9. 22:04
반응형

ng-syslog는 시작 인덱스를 지정합니다.

ng-repeat 디렉티브가 제로 대신 시작되는 인덱스를 지정하려면 어떻게 해야 합니까?

결과 세트가 있는데 시작 값만 지정하면 됩니다. 시작 값은 0과 다릅니다.

angular는 기존 내장 limitTo 필터로 이 작업을 수행했습니다.음의 한계를 사용하세요.의 문서에서limit인수:

반환된 배열 또는 문자열 길이입니다.제한 수가 양수인 경우 소스 배열/문자열 시작부터의 제한 항목 수가 복사됩니다.숫자가 음수인 경우 소스 배열/문자열 끝의 제한 항목 수가 복사됩니다.제한은 array.length를 초과하면 트리밍됩니다.제한이 정의되지 않은 경우 입력은 변경되지 않고 반환됩니다.

템플릿에서는 다음과 같이 사용합니다.

<ul>
   <li data-ng-repeat="i in list | limitTo: (offset - list.length)">{{i}}</li>
</ul>

어디에offset시작 인덱스입니다.샘플 플런커를 참조해 주세요.

선택사항이 있습니다.begin부정을 사용할 필요가 없습니다.limit하지만beginangular v1.4 이전에는 사용할 수 없었기 때문에 나는 네거티브를 고수했다.limit제 예에서는요.

해답은 꽤 오래된 것 같은데

각진 이래1.4.0limitTo 필터에는 2개의 파라미터가 있습니다.

limitTo: (limit) : (begin)

라고 말할 수 있다ng-repeat="item in list | limitTo:50:0"

이것은 두 개의 다른 필터를 사용하는 것보다 훨씬 효과적인 해결책으로 보입니다.

https://code.angularjs.org/1.4.0/docs/api/ng/filter/limitTo

필터를 생성할 수 있습니다.

app.filter('startFrom', function() {
    return function(input, start) {
        if(input) {
            start = +start; //parse to int
            return input.slice(start);
        }
        return [];
    }
});

ng-flash에 사용하면 됩니다.

<div ng-repeat="item in items | startFrom : 2">{{item.Name}}</div>

리스트가 있다고 칩시다.items, 다음과 같이 할 수 있습니다.

<div ng-repeat="item in items" ng-if="$index >= myIndex">
   {{item.Name}}
</div>

욕망 서브어레이를 반환하는 함수를 만들겠습니다.이것은, 컨트롤러 또는 디렉티브의 링크 기능에 넣을 수 있습니다.

<span ng-repeat="item in getSubArray(0, 4)">...</span>

그리고 그 기능은

$scope.getSubArray = function (start, end) {
   return array.slice(start, end);
}

이 방법은 효과가 있었습니다.

<element ng-repeat="round in view.rounds track by $index">
    <span>{{$index + 1}}</span>
</element>

이거면 효과가 있을 거야

<div ng-repeat="(i, item) in items">
    <p>{{i+1}}</p>
</div>

간단하지만 그다지 매력적이지 않은 방법

 ng-repeat="item in model | limitTo: 10 | limitTo: -5"

다음은 제가 찾던 결과입니다.

angular.module('starter.filters', []).filter('startFrom', function() {
return function(input, start) {
    if(input) {
        start = +start; //parse to int
        appended = input.slice(0,start);
        initialArray = input.slice(start);
        finalArray= initialArray.concat(appended);
        return finalArray;
    }
    return [];
}
});

감사합니다 @emanuel

언급URL : https://stackoverflow.com/questions/28411220/ng-repeat-specify-a-starting-index

반응형