【问题标题】:Aurelia Navigation event seems to be triggered too earlyAurelia Navigation 事件似乎触发得太早了
【发布时间】:2016-12-21 08:47:36
【问题描述】:

我想要达到的目标

我有一个显示在网格中的项目列表。当您单击其中一个项目时,它会导航到该项目的详细信息。在该页面上,我想检索有关 dom 的一些信息以基于 dom 执行一些操作。

问题

如果我订阅 Aurelia 的事件(使用事件聚合器)router:navigation:complete 并在此处执行 console.log,那么它会向我显示列表的 DOM 信息而不是 DOM详情页信息。

Events of the router

我是否订阅了错误的事件?

【问题讨论】:

    标签: routing aurelia


    【解决方案1】:

    声明一个变量为 currentActivePage: string;和 app.js 中的导航成功事件以及您需要的任何地方。

    currentActivePage: string;
    self.eventAggregator.subscribe('router:navigation:success', obj => {
                if (obj !== undefined) {
                    self.currentActivePage = obj.instruction.config.name;
                }
                //self.prepareTabs(obj.instruction.config);
            });
    

    同样提到你可以在任何你需要的地方使用。在 HTML 中,您可以根据以下条件显示或隐藏 dom

    <div class="${currentActivePage == 'PageName' ? 'DisplayNone':'DisplayBlock'}">
    content will go here
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      相关资源
      最近更新 更多