2017-10-17 1 views
-1

각도 요소의 템플릿 안에 div가 있습니다. div에서 div의 스크롤 위치를 얻으려고합니다.요소 div에서 스크롤 이벤트가 발생하지 않습니다.

<div class="data-input" (scroll)="onScroll($event)">Accepted Qty....</div> 

html 요소는 다음과 같습니다. 는 TS 파일

내가 함수

onScroll(event) { 
    console.log(event); 
} 

을 가지고 있지만이 기능을 타격하지 않습니다.

내가 이미
@HostListener('scroll', ['$event']) 
onScroll(event) { ...} 

을 시도했지만이 때 페이지 스크롤을 사용할 수 있습니다. html 요소 (div) 스크롤 할 때 스크롤 이벤트를 트리거 할 싶습니다.

+0

이 https://stackoverflow.com/questions/44516017/how-to-handle-window-scroll-event-in-의 중복 될 수 있습니다 당신이 개념을 설명하기 위해 나는 별도의 스크롤 구성 요소를 초안 각도 -4 – izulito

+0

하지만 창 스크롤을 얻으려고하고 있지 않습니다. 요소 스크롤을 얻으려고합니다. –

+0

어떤 브라우저를 사용하고 있습니까? 다른 브라우저에서 문제가 보이십니까? – ConnorsFan

답변

0

ElementRefRenderer으로 시도 할 수 있습니다.

import {Component, OnInit, OnDestroy} from '@angular/core'; 
import {ElementRef, Renderer2} from '@angular/core'; 

@Component({ 
    selector: 'my-scroll', 
    template: '<div>Accepted Qty....</div>' 
}) 

export class MyScrollComponent implements OnInit, OnDestroy { 

    onScrollListener: Function; 

    constructor(private elementRef: ElementRef, private renderer: Renderer2) { 
    } 

    ngOnInit() { 
    this.onScrollListener = 
     this.renderer.listen(this.elementRef.nativeElement, 'scroll', this.onScroll); 
    } 

    ngOnDestroy() { 
    this.onScrollListener(); 
    } 

    onScroll(event) { 
    console.log(event); 
    } 
} 
+0

내 경우에는 div 요소가 다른 요소 안에 있습니다. –

+0

그리고 ' Hello 세계'와 같은 방식으로 사용하는 데 아무런 문제가 없습니다. 또한 MyScroll 구성 요소에서 래퍼를 만들어 다음과 같은 독립적 인 내용을 제공 할 수 있습니다. ' world!'. 두 번째 접근법에는 몇 가지 추가 코드가 필요합니다. 또한 지시어를 만들 수도 있습니다 ... 어쨌든 개념 일 뿐이며 프로젝트에서'HostListener' 대신'Renderer.lesten'을 사용하도록하겠습니다. – dhilt

관련 문제