2017-03-15 1 views
1

정확한 각도 값을 생성한다는 점에서 Angular 2 앱에서 작동하는 코드가있는 흥미로운 상황 중 하나가 있습니다. 그러나 정확히 어떻게 수행하는지 확신 할 수 없습니다.페이지 매김 파이프가 각도 2 앱에서 배열 길이에 성공적으로 액세스하는 방법은 무엇입니까?

특히, 내 응용 프로그램에서 페이지 매김을 처리하는 데 ng2-pagination을 사용하고 있습니다. 필자가 사용하는 방식은 원하는 페이지 당 결과 수를 입력하고 결과 배열의 길이에 대해 계산하여 정확한 페이지 번호가 페이지 매김을 위해 생성됩니다.

필자의 경우 ng2 페이지 매기기가 해당 수학을 성공적으로 수행하고 있음을 알리는 정확한 # 페이지가 생성됩니다. 하지만 현재 배열의 길이를 어디에서 얻고 있는지 전혀 알 수 없습니다.

내 구성 요소에있는 관련 코드는 다음과 같습니다. 기본적으로 서비스를 호출하고 OnInit주기에서 실행되는 두 가지 함수를 실행합니다. 첫 번째 레코드는 모든 레코드를 가져옵니다. 그리고 두 번째는 레코드의 총 수를 가져옵니다 내보기에, 그리고

ngOnInit() { 
    this.customerService.getAll() 
     .subscribe(resRecordsData => this.records = resRecordsData, 
     responseRecordsError => this.errorMsg = responseRecordsError); 

    this.customerService.getCustomerCount() 
     .subscribe(resRecordsData => this.customerCount = resRecordsData, 
     responseRecordsError => this.errorMsg = responseRecordsError); 
} 

을, 나는 그 항목을 반복하고,이처럼 PAGINATE 파이프를 통해 전달 :

<tr *ngFor="let record of records | paginate: { id: 'customers', itemsPerPage: 15, currentPage: page }"> 

I 이 코드를 사용하여보기에서 PAGINATE 파이프에 대한 일부 매개 변수를 설정하고있다 :

<div *ngIf="!!records && records.length" class="pagination"> 
        <pagination-controls class="paginator" (pageChange)="page = $event" id="customers" 
          maxSize="15" 
          directionLinks="true" 
          autoHide="true"> 
        </pagination-controls> 
      </div> 

지금 현재 나는이 컬렉션의 바로 아래 (900 개) 기록을 가지고있다. 위의 코드를 사용하면보기에 올바른 페이지 수가 생성됩니다. 즉, 컬렉션에는 900 개 이하의 항목이 포함되어 있고 페이지 당 디스플레이를 15로 설정 했으므로 정확하게 60 페이지를 생성합니다. 이는 정확합니다!

질문은 파이프가 정보를 얻는 방법입니다. 즉, 900 개의 항목은 어디서나 통과하지 않는 것 같습니까?

+0

그것은 단지, 파이프 내부에 그것을 collection.length을 acessing입니다. – Fals

+0

"레코드 기록을 남겨 둬"라는 뜻인가요? – Muirik

답변

1

레코드 배열의 길이와 사용량을 묻습니다.

Check the source code for the pagination pipe.

+0

그래서 "레코드 레코드를 저장하라"부분에 페이지 헤더 파이프가 배열의 길이에 접근하고 있다고 말하는 것입니까? 그렇다면 인수로 전달 될 필요는 없습니다. 그 맞습니까? – Muirik

+0

이 전달됩니다 - 페이지 매김 파이프에 대한 인수로. – snorkpete

+0

"기록을 남겨 둡니다"라는 것이 전달 되었습니까? 맞습니까? – Muirik