Meteor JS Router.go重定向到同一页面

Meteor JS Router.go redirect to the same page

本文关键字:一页 重定向 JS Router go Meteor      更新时间:2023-09-26

我遇到了一个问题,在我的流星应用程序中,当我在一个页面上说"测试/两个"时,我有一个名为"全部"的按钮,现在当我点击这个按钮时,我希望我的流星应用服务器上的初始数据重新加载整个"测试/二个"页面(有一些过滤器和你可以在"测试/两者"上更改的东西)。

问题是,无论我是使用锚点还是点击事件来重定向Router.go流星,我都会意识到我已经在这个页面上了,什么也不做。

我可以强制流星应用程序从服务器上重新加载我已经打开的同一页面吗?

这看起来并不容易
问题是,如果你对页面进行完全刷新,你会得到带有初始数据的页面,但你会丢失会话
示例:
.js

if (Meteor.isClient) {
    Session.setDefault('something', "other");
    console.log(Session.get('something'));
    Template.reload.events({
        'click #reload': function() {
            document.location.reload(true);
        },
        'click #change': function() {
            Session.set('something', 'else');
            console.log(Session.get('something'));
        }
    });
}
Router.route('/', function() {
    this.layout('layout');
    this.render('reload');
});

.html

<head>
    <title>Reload</title>
</head>
<body>
    <h1>Reload test!</h1>
</body>
<template name="layout">
    {{> yield}}
</template>
<template name="reload">
    <button id ="change" type="button">Change Session</button>
    <br/><br/>
    <input type="text">
    <input type="checkbox">
    <input type="checkbox" checked>
    <button id="reload" type="button">Reload</button>
</template>

我用iron:router做了一些实验,但没有得到任何结果
暴力的想法可以将初始数据保存在对象中,如果用户按下"全部"按钮,您将使用侦听器恢复原始数据。

此外,我还发现了这个,我如何重新加载当前的iron:router路由?,看看,也许有用。

Iron:Router是不必要的如果你只想重新加载整个页面,你可以使用纯JavaScript:

document.location.reload(true);