如何使用 Meteor FlowRouter.reload()

Deb*_*rah 4 reload meteor flow-router

我找到了 FlowRouter.reload() 的 FlowRouter 文档,但我无法找到特定的代码示例,也无法使其工作。

在我的应用程序中,我有一个模板,它使用一些巧妙的 javascript(同位素)在页面大小调整时重新定位元素。有时,用户导航离开,调整浏览器窗口大小,然后返回到一个混乱的页面,该页面应该刷新并重绘以重新定位调整大小的窗口的元素。

这是我的路线。我将如何使用 FlowRouter.reload() 重新加载/刷新“工作”模板区域?或者,我将如何使用它来重新加载/刷新整个布局模板或窗口?

FlowRouter.route( '/work', {
  action: function() {
    BlazeLayout.render( 'body-static', { 
      content:  'work',
    });
  },
});
Run Code Online (Sandbox Code Playgroud)

Deb*_*rah 5

万一其他人来到这里,这个问题在 Meteor 论坛中 Hugh 的大力帮助下得到了解决。

解决方案没有使用reload。相反,它利用 FlowRouter 中的触发器来检查模板是否正在重新加载,如果是则刷新它,然后在刷新后停止以防止无限循环。

结果是这样的。

// handle refreshing div on every load of div
let fireReload = false;

function reloadCheck(context, redirect, stop) {
  if (fireReload) {
    console.log('Hugh is Awesome and also reloading screen...');
    FlowRouter.reload();
    stop();
  }
}

function routeCleanup() {
  fireReload = !fireReload;
}

FlowRouter.route('/work', {
  action: function() {
        BlazeLayout.render( 'body-static', { 
            content:    'work',
        });
  }, 
  triggersEnter: [reloadCheck],
  triggersExit: [routeCleanup]
});
Run Code Online (Sandbox Code Playgroud)