如何使用流星 FlowRouter.reload()

How to use Meteor FlowRouter.reload()

我找到了 FlowRouter.reload() 的 FlowRouter 文档,但我找不到具体的代码示例,也无法使其正常工作。

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

这是我的路线。我如何使用 FlowRouter.reload() 到 reload/refresh 只是 "work" 模板区域?或者,我如何将它用于 reload/refresh 整个布局模板或 window?

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

以防万一有人来到这里,在 Hugh 在 Meteor 论坛的大力帮助下解决了这个问题。

解决方案没有使用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]
});