当用户点击“加载更多”时,我希望我的页面不会跳转到顶部。如在这个例子中。期望效果的一个示例是http://microscope.meteor.com/。
我正在使用Iron:路由器
template(name="articlesList")
.articles
each articles
+articleItem
.show-more-news-container
if articlesReady
if nextPath
a(id="show-more-news-link", class="show-more-news-link") Show More News
else
+spinner
Template.articlesList.events
'click #show-more-news-link': (e,t)->
e.preventDefault()
@loadMoreHandler()
Router.route '/news/top/:articlesLimit?',
name: 'articlesListTop'
template: 'articlesList'
controller: 'ArticlesListController'
@ArticlesListController = RouteController.extend({
template: 'articlesList'
increment: 4
articlesLimit: ->
parseInt(this.params.articlesLimit) or @increment
subscriptions: ->
@articlesSub = Meteor.subscribe 'articlesData', @articlesLimit()
articles: ->
Posts.find {}, { sort: {submitted: -1} }
data: ->
hasMoreArticles = @articles().count() == @articlesLimit()
nextPath = @router.path('articlesListTop', {articlesLimit: @articlesLimit() + @increment})
return {
articles: @articles()
articlesReady: @articlesSub.ready()
nextPath: if hasMoreArticles then nextPath else null
loadMoreHandler: ->
Router.go(nextPath)
}
})
此代码成功地使我的加载更多按钮工作,但它也使我的页面每次单击跳转到顶部。有人知道可能导致这种行为的原因吗?
答案 0 :(得分:0)
我发现了问题。我还有另一个在RouterController中定义了用户订阅的waitOn函数,导致页面向上跳跃,因为它每次都会加载模板几纳秒。