2016-06-28 16 views
13

Um die aktuelle Route innerhalb einer Nicht-View-Modellklasse zu erhalten, wäre es am besten, den Router zu injizieren und this.router.history.fragment zu verwenden? Oder ist das ein Nein?Die aktuelle Route in Aurelia abrufen

Antwort

20

Sie könnten den Router injizieren und die aktuelle Anweisung erhalten. Wie folgt aus:

import { inject } from 'aurelia-dependency-injection'; //or framework 
import { Router } from 'aurelia-router'; 

@inject(Router) 
export class MyClass { 

    constructor(router) { 
     this.router = router; 
    } 

    getRoute() { 
    return this.router.currentInstruction.config.name; //name of the route 
    //return this.router.currentInstruction.config.moduleId; //moduleId of the route 
    } 
} 
+5

Bitte beachten Sie, dass 'currentInstruction' noch' null' im Konstruktor, also wenn Sie es für die Bindung verwenden möchten, können Sie es in der 'created' Verfahren erhalten (siehe auch [Komponente Lebenszyklus] (http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/creating-components/3) –

+0

Ich bekomme hier die Daten der vorherigen Route, keine Ahnung warum ??? Danke, – IngoB

+0

Wahrscheinlich, weil sich die Ansicht noch nicht geändert hat.Prüfen Sie, ob Sie eine 'canDeactivate' Funktion haben –