Meteor 下一个路由不会从页面顶部打开(向下滚动)。为什么?

Meteor 下一个路由不会从页面顶部打开(向下滚动)。为什么?,meteor,iron-router,Meteor,Iron Router,有人遇到过同样的问题吗?我正在使用模板级订阅的iron路由器。 例如我有一个长长的页面“项目列表”,可以向下滚动。然后我点击底部某个地方的一个项目,下一个模板的渲染比它应该的低。 假设您在youtube上搜索,向下滚动结果,然后单击视频片段,但它不是从顶部打开的,而是从下部打开的,因此您需要滚动回顶部以查看视频 我曾尝试将“滚动到顶部”脚本放入onRendered回调中,但这种“跳跃”是肉眼可以识别的。所以情况变得更糟 (更新)我现在已经找到了这个解决方案: Router.onBeforeA

有人遇到过同样的问题吗?我正在使用模板级订阅的iron路由器。
例如我有一个长长的页面“项目列表”,可以向下滚动。然后我点击底部某个地方的一个项目,下一个模板的渲染比它应该的低。
假设您在youtube上搜索,向下滚动结果,然后单击视频片段,但它不是从顶部打开的,而是从下部打开的,因此您需要滚动回顶部以查看视频


我曾尝试将“滚动到顶部”脚本放入onRendered回调中,但这种“跳跃”是肉眼可以识别的。所以情况变得更糟


(更新)我现在已经找到了这个解决方案:

Router.onBeforeAction(function() {
  $(window).scrollTop(0);
  this.next();
});
你应该试试这个

meteor add okgrow:iron-router-autoscroll

参考资料:

尝试将其放入代码中,如果使用React,则将其放入componentDidMount()函数中


如果您使用的是FlowRouter,您可以轻松地将其添加到triggersEnter路由定义中:

const publicRoutes = FlowRouter.group({
  name: 'public',
  triggersEnter: [() => {
    window.scrollTo(0, 0);
  }],
});

尝试使用这个软件包?支持Iron路由器和Flow路由器的更新版本:要全局设置它,可以使用
FlowRouter.triggers.enter([()=>{window.scrollTo(0,0);}])
const publicRoutes = FlowRouter.group({
  name: 'public',
  triggersEnter: [() => {
    window.scrollTo(0, 0);
  }],
});