Angular 4アプリでウィンドウがスクロールされたときを検出しようとしていますが、イベントを直接<body>
に添付するとイベントが発生しないようです要素、または私のコンポーネントでは、これらの線に沿って何かを使用して:角4 /材質2:スクロールイベントが発射されない
this.eventSubscription = Observable.fromEvent(winRef.nativeWindow, "scroll").subscribe(e => {
// do something
});
すべてのウェブ上の記事のすべての種類がありますが、決定的な答えがあるように表示されません。 1つの投稿は、コンポーネントが<router-outlet>
の範囲内にある場合、カプセル化を親要素のNative
に設定する必要があることを示しています。私はこれを試しました:うまくいきませんでした。
マイコンポーネントテンプレートは次のようになります。
<!-- home.component.html -->
<div>
<p *ngFor="let item of playlistItems$ | async">
{{ item | json }}
</p>
</div>
コンポーネント自体:
// home.component.ts
@Component({
selector: 'beyond-home',
templateUrl: './home.component.html',
styleUrls: [ './home.component.scss' ]
})
export class HomeComponent {
playlistItems$: Observable<Array<IPlaylistItem>>;
eventSubscription;
constructor(private store: Store<fromRoot.IState>, private winRef: WindowRef) {
this.store.dispatch(playlist.loadPlaylist());
this.playlistItems$ = this.store.select(fromRoot.getPlaylistItems);
this.eventSubscription = Observable.fromEvent(winRef.nativeWindow, "scroll").subscribe(e => {
// do something
});
}
}
は私の人生のために何が起こっているのかうまくできません。イベントだけが発砲していません!私は材料2を使用していますが、これは合併症に加わる可能性があります。正しいイベントを購読していますか?それは本当にwindow:scroll
ですか?私は棒の間違った終わりを持っていますか?
私が最初に試したことです。それはうまくいかなかった。 – serlingpa
@serlingpaしかし、どこで試しましたか?あなたが体にそれを添付しようとすると、それは角度アプリの一部ではないので動作しない可能性があります。 app.componentなどのコンポーネントに接続して試してみてください。何も表示されない場合、別のコードでは、すべてのスクロールイベントが破砕されます。 – PeterS