单击同一链接时,使Iron Router重新加载页面

Make Iron Router reload page when clicking on the same link

本文关键字:新加载 加载 Router 链接 Iron 单击      更新时间:2023-09-26

我刚开始玩Meteor和Iron Router来创建一个简单的网站。该网站的导航栏上有几个链接,其中一个链接名为random。这个想法是,当用户点击它时,页面上会显示一个随机的帖子。

现在,如果页面与当前链接相同,Iron Router似乎可以阻止页面重新加载。这是一个很好的功能,除了在我的情况下,我需要重新加载它,这样用户就可以看到一个新的帖子。

这是相关代码:

Router.route('/random', function() {
    console.log("running this!");
    this.layout('SinglePostLayout', {
        data: function () { return draw(Posts, {}) }
    });
    this.render('post');

draw函数返回集合中的一个post。这很有趣,但这与这里无关。我使用console.log确认代码只运行过一次。

有办法绕过这个吗?除了随机链接外,我想保留所有其他链接的不重新加载行为。我找了一段时间的答案,但什么也找不到。

谢谢!

因为您没有使用动态路由来显示每个帖子。

您可以从窗口对象使用Location.reload()方法,并使用纯Javascript。

  if(Meteor.isClient){
    Template.home.events({
        'click #randomHref':function(){
            document.location.reload(true);
            // Router.go('/') don't work.
        }
    })
}