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

Execute route change before event function

我有一个菜单项列表,每个菜单项都是一个 a 标签。在那些里面,我在 div 里面有通知气泡。单击通知 div 时,我想在执行附加到 div。由于自 netscape 时代以来反向传播不存在,我想也许点击事件可以在路由更改时将函数存储为回调?有没有人试图做类似的事情?在 Iron Router 文档中找不到任何关于它的信息。我目前正在使用一些 Session 变量来缓解这个问题,但我想清理它。

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

<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.
}

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