“加载更多”按钮使页面跳转到顶部

时间:2015-03-10 17:53:19

标签: meteor

当用户点击“加载更多”时,我希望我的页面不会跳转到顶部。如在这个例子中。期望效果的一个示例是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)
    }
})

此代码成功地使我的加载更多按钮工作,但它也使我的页面每次单击跳转到顶部。有人知道可能导致这种行为的原因吗?

1 个答案:

答案 0 :(得分:0)

我发现了问题。我还有另一个在RouterController中定义了用户订阅的waitOn函数,导致页面向上跳跃,因为它每次都会加载模板几纳秒。