Aurelia路由到同一模块ID

Aurelia路由到同一模块ID,aurelia,Aurelia,嗨,我在Gitter上问过这个问题,但希望这里的人能帮上忙 我有两条不同的路线,它们有相同的模块ID。我还使用一些数据在路由中设置了一个设置对象,以区分渲染的内容。当我从其他地方导航到这些路由中的一条时,一切正常,但是如果我从一条导航到另一条,则不会触发构造函数或激活。我遗漏了什么吗???找到了答案:)虽然不是现成的完整解决方案,但实现是可能的我遇到了这个问题,花了一段时间才找到解决方案-我希望这会对您有所帮助 您需要将determinateActivationStrategy()方法添加到类中

嗨,我在Gitter上问过这个问题,但希望这里的人能帮上忙


我有两条不同的路线,它们有相同的模块ID。我还使用一些数据在路由中设置了一个设置对象,以区分渲染的内容。当我从其他地方导航到这些路由中的一条时,一切正常,但是如果我从一条导航到另一条,则不会触发构造函数或激活。我遗漏了什么吗???

找到了答案:)虽然不是现成的完整解决方案,但实现是可能的

我遇到了这个问题,花了一段时间才找到解决方案-我希望这会对您有所帮助

您需要将
determinateActivationStrategy()
方法添加到类中,然后按如下方式返回

import {activationStrategy} from "aurelia-router";

export class ExampleViewModel {

    determineActivationStrategy() {
        return activationStrategy.replace;
    }

}
这将迫使VM在从自身路由到它时被替换

下面是关于不同激活策略类型的更多信息

激活策略。无更改
–重用实例,无生命周期事件

activationStrategy.invokeLifecycle
–每次路由切换时调用ViewModel实例上的生命周期方法

activationStrategy.replace
–构造ViewModel的新实例并在其上调用完整生命周期

取自此处

这是以下内容的副本: