【问题标题】:How do I add a hash to URL in meteor iron-router?如何在流星铁路由器中向 URL 添加哈希?
【发布时间】:2014-07-28 08:05:15
【问题描述】:

我有一个使用 iron-router 的 Meteor 应用程序,它在选项卡中显示花名册 (example here)。我希望 URL 包含一个哈希值,该哈希值取决于显示的选项卡,即。 http://example.com/myrosters#first.

我有如下事件代码:

Template.roster.events({
'mousedown .nav-tabs li a': function (evt) { 
        # want to set the URL here
    }
});

如何在此处设置 URL 以包含哈希,而不实际触发不必要的页面重新加载? (我相信Router.go() 会触发页面重新加载。)

谢谢!

【问题讨论】:

    标签: meteor iron-router


    【解决方案1】:

    如果路径保持不变,那么 go 似乎不会重新加载页面。

    Router.go(window.location.pathname+"#test3")
    

    当我执行上述操作时,我在开发者控制台的网络选项卡中看不到任何活动,所以我认为这应该适合您的目的。

    【讨论】:

    • 谢谢。这看起来很有希望,并且它不会重新加载,但我发现在我的情况下,它也没有将#test3 添加到 URL 的末尾 - 有时#test3 确实在那里短暂闪烁,只是再次消失.作为测试,如果我用Router.go(another_page) 替换命令,它会将我引导到另一个页面就好了。有任何想法吗?谢谢!
    • 我也试过window.location.hash = "test3";,看到了同样的结果——#test3 有时会在 URL 的末尾短暂闪烁,但不会停留在那里。
    • 我无法重现您描述的行为。在我的系统上,它就可以呆在那里(linux + chrome)。您使用的是哪种浏览器和操作系统?
    • 这很有趣。我正在使用 Mac OS X 和 Firefox。我也尝试了 Safari 和 Chrome 中的一个,但看到了同样的结果(抱歉 - 现在不记得是哪个了)。
    • 当您转到manuel-schoebel.com/blog/iron-router-tutorial 并执行Router.go(window.location.href + "#test"); 时会发生什么?
    【解决方案2】:

    您可以使用 Router.url 代替 Router.go

    Router.url('yourrouterpathname', {_id: id}, {query: 'q=s', hash: 'hashFrag'});

    【讨论】:

      猜你喜欢
      • 2014-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 2017-02-13
      • 2016-01-22
      • 1970-01-01
      相关资源
      最近更新 更多