2017-01-23 6 views
1

스크롤 끝을 감지하는 사용자 지정 지시문 (Scroller)에서 작업 해 왔습니다. 나는 즉시 (페이지의 끝에 도달 예) 스크롤 끝사용자 지정 지시문에서 방출하는 방법?

사용자 정의 지침으로 수를 방출 할 : 내 부모 템플릿 지시문을 결합

import { HostListener , Directive, Output, EventEmitter} from '@angular/core'; 



@Directive({ 
    selector: '[scroller]' 
}) 


export class scrollDirectiveComponent{ 
    @HostListener('scroll', ['$event']) 

    @Output() emitPageNumber:EventEmitter<any> =new EventEmitter(); 
    pageNo:any=0; 
    onScroll(event) { 
    // do tracking 
    console.log('scrolled', event.target.scrollTop); 
    // Listen to click events in the component 
    let tracker = event.target; 

    let limit = tracker.scrollHeight - tracker.clientHeight; 
    console.log(event.target.scrollTop, limit); 
    if (event.target.scrollTop >= limit) { 
     console.log('end reached'); 
     this.pageNo++; 
     this.emitPageNumber.emit(this.pageNo); 
    } 
    } 
} 

 <div class="alert-list" scroller (emitPageNumber)="fetchPageNumber($event)"> 

그러나 내가 스크롤했을 때 core.umd.js : 3462 예외가 발생했습니다 : http://localhost:3000/app/menu-board/menu.component.html:63:8 오류 : self._scrollDirectiveComponent_32_3.emitPageNumber가 함수가 아닙니다.

내가 뭘 잘못하고 있니?

답변

2

@HostListener(...)

@HostListener('scroll', ['$event']) 
scrollHandler(event) { 
    ... 
} 
+1

는 회신 주셔서 감사합니다 실종 몇 가지 코드가있다. 이제 오류의 의미를 이해했습니다. 내 스크롤 핸들러는 onScroll()이고 @Output() 아래로 이동했습니다. – CruelEngine

관련 문제