2017-05-12 77 views
0

嗨,那裏我問過這個關於Gitter,但希望這裏的某個人能夠幫助。Aurelia路由到相同的模塊ID

我有兩個不同的路線具有相同的moduleId。我還在路由中使用一些數據設置了一個設置對象,以區分渲染的內容。當我從其他地方導航到這些路線之一時,一切正常,但是如果我從一個導航到另一個,則不會激發構造函數或激活。我錯過了什麼?

+0

這是一個重複的:http://stackoverflow.com/questions/39999969/how-to-set-default-activationstrategy-in-aurelia –

回答

2

我有這個問題,我花了一段時間來找到解決方案 - 這應該幫助你,我希望;

您需要將determineActivationStrategy()方法添加到您的班級,然後返回如下。

import {activationStrategy} from "aurelia-router"; 

export class ExampleViewModel { 

    determineActivationStrategy() { 
     return activationStrategy.replace; 
    } 

} 

這將強制虛擬機在您從自身路由到虛擬機時進行替換。

下面是關於不同激活策略類型的更多信息;

activationStrategy.no-change - 沒有生命週期事件

activationStrategy.invokeLifecycle重用實例 - 呼籲視圖模型實例的生命週期方法,每一次的路線切換

activationStrategy.replace - 構建視圖模型的新實例,並調用它

完整的生命週期

這裏取來ZombieCodeKill - Aurelia Routing Beyond the Basics

0

找到了答案here :)雖然不是一個完整的修補程序開箱即用的實現是可能的