4

リクエストごとにリストから 500 行を超える行があり、10 行になることもあれば、巨大になることもあります。

その配列を取り、画面に表示されているものだけを表示し、それ以外はすべて非表示にしたいのですが、ユーザーが下にスクロールすると、他の行が表示され、前の行が非表示になります。

これは少し複雑です。私は RxJS ビデオを見ていましたが、Netflix も同様でした。この効果を得るためにどの関数を使用すればよいかわかりません。

https://gist.github.com/iBasit/8ceef1db9de945a37559 Netflix の例。

私たちのコード:

Observable.fromArray([0,1,2,.....500]).subscribe(row => show(row));
4

1 に答える 1

1

この「仮想スクロール」を行う方法について、いくつかの記事 (この記事など) とさまざまなデモを作成しましたが、基本的に必要なのは、静的な行の高さか、特定の行が上に表示されるかどうかを判断する機能です。画面(Row#isRowVisibleリンクした要旨)。

次に、後で行を表示する最も簡単な方法は、インデックスを静的な行の高さで乗算するか、行が表示される場所を計算するように絶対に配置することです。

これは、React でこれを行う方法のかなり大まかなデモですが、アイデアは非常に似ています (RxJS コードまたは私の Cycle.js の例からコピー ペーストするだけでよい場合があります)。でも、自分で作ってみることをお勧めします。

また、各行に大量の要素がない限り、500 個のアイテムは実際には angular2 にとって大きな問題にはなりません (非常に高速です)。

于 2016-02-22T05:41:50.290 に答える