嗨,那裏我問過這個關於Gitter,但希望這裏的某個人能夠幫助。Aurelia路由到相同的模塊ID
我有兩個不同的路線具有相同的moduleId。我還在路由中使用一些數據設置了一個設置對象,以區分渲染的內容。當我從其他地方導航到這些路線之一時,一切正常,但是如果我從一個導航到另一個,則不會激發構造函數或激活。我錯過了什麼?
嗨,那裏我問過這個關於Gitter,但希望這裏的某個人能夠幫助。Aurelia路由到相同的模塊ID
我有兩個不同的路線具有相同的moduleId。我還在路由中使用一些數據設置了一個設置對象,以區分渲染的內容。當我從其他地方導航到這些路線之一時,一切正常,但是如果我從一個導航到另一個,則不會激發構造函數或激活。我錯過了什麼?
我有這個問題,我花了一段時間來找到解決方案 - 這應該幫助你,我希望;
您需要將determineActivationStrategy()
方法添加到您的班級,然後返回如下。
import {activationStrategy} from "aurelia-router";
export class ExampleViewModel {
determineActivationStrategy() {
return activationStrategy.replace;
}
}
這將強制虛擬機在您從自身路由到虛擬機時進行替換。
下面是關於不同激活策略類型的更多信息;
activationStrategy.no-change
- 沒有生命週期事件
activationStrategy.invokeLifecycle
重用實例 - 呼籲視圖模型實例的生命週期方法,每一次的路線切換完整的生命週期
activationStrategy.replace
- 構建視圖模型的新實例,並調用它
找到了答案here :)雖然不是一個完整的修補程序開箱即用的實現是可能的
這是一個重複的:http://stackoverflow.com/questions/39999969/how-to-set-default-activationstrategy-in-aurelia –