Ho alcuni modelli che sembrano più o meno in questo modo:Re rendering modello fa sì che la pagina per scorrere verso l'alto
<template name="items">
<div class="item-list">
{{#each items}}
{{> item}}
{{/each}}
<div>
{{> loadMore}}
</template>
<template name="item">
<div class="item" id="{{unique_string}}">
<!-- stuff here -->
</div>
</template>
<template name="loadMore">
<a href="#">Load more...</a>
</template>
con JavaScript associati:
Template.items.items = function() {
return Items.find({}, {limit: Session.get("itemCount")});
}
Template.loadMore.events({
"click": function() {
Session.set("itemCount", Session.get("itemCount") + 10);
}
})
Tutto questo insieme più o meno mi dà qualcosa che funziona praticamente come una sezione a scorrimento infinita. (Il codice vero e proprio ha un paio di parti in movimento, ma questo è il bit importante.)
Ogni volta che clicco su loadMore
, però, sia tira più dati verso il basso e scorre mi riporta alla parte superiore della pagina, piuttosto sconfiggendo lo scopo del rotolo infinito. Posso inserire un po 'di javascript per scorrere di nuovo verso il basso dove dovrebbe essere, ma questo lascia uno sfarfallio mentre la pagina salta velocemente.
Ho provato a utilizzare preserve
sull'intero elenco e su ogni elemento div
per impedire che vengano aggiornati, ma ciò non sembra aver interrotto lo scorrimento. Ho anche provato a mettere blocchi {{#isolate}}
intorno a qualsiasi cosa, senza alcuna fortuna.
C'è qualcosa che posso fare qui per fare in modo che la pagina non scorra mentre ritorna? Comporre i modelli in modo diverso? Alcuni aspetti di preserve
o {{#isolate}}
che ho perso?
... ovviamente. Chi avrebbe mai sospettato che quella foresta che stavo fissando da così tanto tempo sarebbe stata piena di alberi? – user1830246