Aurelia导航事件似乎过早触发

时间:2016-08-15 06:13:53

标签: routing aurelia

我想要实现的目标

我有一个以网格显示的项目列表。当您单击其中一个项目时,它将导航到项目的详细信息。在那个页面上,我想检索一些关于dom的信息,根据dom做一些动作。

问题

如果我订阅了事件(使用事件聚合器)路由器:导航:完成 Aurelia并在这里执行console.log,那么它会显示列表的DOM信息而不是DOM详细信息页面的信息。

Events of the router

我订阅了错误的活动吗?

1 个答案:

答案 0 :(得分:0)

将一个变量声明为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>