ユーザーがスクロールするときに要素を表示する無限スクロールページを実行しようとしています。Angular2 Meteor、無限スクロールを実装する(スクロールを上にスクロールする)
だから私は、スクロールは私が
this.recordLimit += 10;
this.subscribe('movements', {limit: this.recordLimit});
とtriggeres(オートラン)
this.autorun(h => {
if (this.ready()) {
this.items = Items.find(<potential limit filter here too>);
}
すべての権利ことを呼び出しページの最後に達したことを検出するたびに。それは働いている。ただし、this.items = Items.find();
が呼び出されるたびに、ユーザーのブラウザがスクロールして先頭に戻ります。
これは、dom要素が削除され、スクロールがリセットされ、以前のスクロール位置を復元せずに要素が再び追加されるためです。
私は間違っていますか?それが働いて 'apparenty' です
例:編集########### @
- https://github.com/barbatus/ng-infinite-scroll/blob/master/scroll-controller.js
- https://github.com/abecks/meteor-infinite-scroll
- http://meteorpedia.com/read/Infinite_Scrolling
## ########## @
実際、私は、 Items.find()
h.stop()
は、サブスクリプションを停止するには、これは動作します...私は前回のマンゴーカーソルが最後のサブスクリプションの制限で更新されると思います。私はまだこれが最初のケースでは、すべてを再塗装された理由を理解することはできませんよしかし
..
私はあなたの出版物を購読してください、より正確には "should"と "only"を理解できません。オートランの中でどのように購読するのが良い習慣であるか、または必須ですか? – ATX
@ATXそれはオブザーバーの働きによるものです。 20ページの文書をスクロールして返し、40に制限を変更した場合、自動実行で登録して自動実行ではない文書を返すと、以前に取得した20の文書を再レンダリングしません。私はボタンのクリックや無限のスクロールのための同じ機能を持っています。 – Luna
@ATXこれをより明確にするために、購読者はアプリケーションをクライアント側に返します。アプリケーションの特定の場所ではなく、クライアント側で使用できるようにします。したがって、あなたは制限を変更するので、購読を自動実行します。パブリッシュはクエリを取得し、唯一の変更は制限であるため、XX以上のドキュメントを返します。制限を変更する前に既にxxドキュメントを持っていて、オートランの中でそれらを返さないので、それは必要な機能を果たし、なぜそれが「正しい」練習であるのか – Luna