在事件功能之前执行路由更改

时间:2015-05-09 15:02:33

标签: meteor iron-router

我有一个菜单项列表,每个都是a标记。在这些内部,我发现了通知气泡div。点击通知div后,我想首先关注a标记(哈希始终是使用铁路由器的Meteor路由),然后再执行附加到DIV。由于反向传播自网景时代以来就不存在,我想也许点击事件可以在路由发生变化时将函数存储为回调?有没有人试图做类似的事情?无法在Iron Router文档中找到有关它的任何内容。我目前正在使用一些Session vars缓解此问题,但我想将其清理干净。

1 个答案:

答案 0 :(得分:1)

在没有看到你的代码当前正在做什么的情况下(或者更好,一个简化的例子),我猜测你正在尝试做什么。也许你有这样的事情:

<a href="/yourroute"><div id="bubblething">Click Me!</div></a>

点击活动:

'click #bubblething': function() {
    // Do the bubble thing.
}

但问题是你想在路由后触发点击事件,但点击发生在早期。是否有可能将其更改为更像这样的东西:

<div id="bubblething">Click Me!</div> //no <a> tag.

点击事件首先处理实际路由,然后继续:

'click #bubblething': function(){
    Router.go('/yourroute'); // First you route
    { ... } // Code to handle the notification bubble.
}

您可能需要稍微更新样式,以免缺少<a>标记,但这应该非常简单。路由由点击处理,然后发生其他事情。你可以参数化这个,这样你就可以调用一个类并注入路径而不是调用id。