2017-10-26 4 views
0

Material2의 스크롤 이벤트를 수신하기 위해 새 API를 사용하려고합니다. 나는 나의 app.module.ts에 ScrollDispatchModule 수입과 내가 같은 이벤트에 ViewChild와 구성 요소에 액세스하고 가입하고 싶지만 스크롤 변수가Material2 cdk Scrollable never initialised

<div cdkScrollable> 
    <div class="my-content"> 
    ... 
    </div> 
    <footer class="my-footer"> 
    ... 
    </footer> 
</div> 

같이 cdkScrollable 지시자 컨테이너를 주석 항상 정의되지 않음 :

@ViewChild(Scrollable) scrollable: Scrollable; 

    ngAfterViewInit() { 
    this.scrollable.elementScrolled().subscribe(scrolled => { 
     //do stuff 
    }); 
    } 

올바른 API를 사용하고 있습니까?

+0

스냅 샷 빌드를 사용하는 경우 @Pankaj Parkar의 답변이 정확합니다. beta.12를 사용하고 있다면, 작성한 내용이 효과가 있습니다. 이 [예] (https://stackblitz.com/edit/material2-beta12-yzyhjd?file=app%2Fapp.component.ts)를 확인하십시오. –

+0

이제는 작동합니다. 왜 묻지 않습니까? 그동안 해결 한 다른 관련없는 오류가있었습니다. 나는 여전히 div의 참조를 얻기 위해 사용하고있는'scrollable.getElementRef()'에 의해 반환 된'undefined '를 얻었지만 어쨌든 Event 타겟을 사용했다. –

답변

3

Scrollable 지시문을 모듈 @angular/cdk으로 옮겼습니다. 그 이후로 Scrollable 클래스의 영향을받은 후에는 CdkScrollable을 사용해야합니다.

@ViewChild(CdkScrollable) scrollable: CdkScrollable; 
+0

지시어 이름이'Scrollable'이므로 작동하지 않을 것이라고 생각합니다. –

+0

@WillHowell 각도 재질 API를 확인했습니다. [여기에서 확인하십시오.] (https://github.com/angular/material2/blob/master/src/cdk /scrolling/scrollable.ts#L23) –

+0

아, 전 문서 사이트를보고 있었는데 마지막 출시 이후 업데이트되었습니다. 명확히하기 위해 대답을 업데이트하면 +1이 나옵니다. –