2015-11-13 11 views
7

Ich benutze Aurelia Rahmen. Ich möchte navigationInstruction Informationen in App-Datei (app.ts/app.js) jedes Mal, wenn Benutzer zu neuen Route/Seite navigieren.Identifizieren Sie die aktuelle Route in Aurelia

Ich habe versucht, diese Informationen in den Lebenszyklusereignissen (aktivieren und binden) der App abzurufen, aber keine Informationen sind verfügbar.

Kann mir jemand helfen, dieses Problem zu lösen.

Vielen Dank im Voraus.

Antwort

9

abonnieren Sie die Navigation des Routers „Erfolg“ Ereignis:

import {EventAggregator} from 'aurelia-event-aggregator'; 
import {inject} from 'aurelia-dependency-injection'; 

@inject(EventAggregator) 
export class App { 
    constructor(eventAggregator) { 
    this.eventAggregator = eventAggregator; 
    } 

    navigationSuccess(event) { 
    let instruction = event.instruction;  
    // todo: do something with instruction... 
    } 

    attached() { 
    this.subscription = this.eventAggregator.subscribe(
     'router:navigation:success', 
     this.navigationSuccess.bind(this)); 
    } 

    detached() { 
    this.subscription.dispose(); 
    } 
} 

Hier ist eine etwas andere Version ES7 Funktion Bindung und ES6 Destrukturierung mit:

import {EventAggregator} from 'aurelia-event-aggregator'; 
import {inject} from 'aurelia-dependency-injection'; 

@inject(EventAggregator) 
export class App { 
    constructor(eventAggregator) { 
    this.eventAggregator = eventAggregator; 
    } 

    navigationSuccess({ instruction }) { 
    // todo: do something with instruction... 
    } 

    attached() { 
    this.subscription = this.eventAggregator.subscribe(
     'router:navigation:success', 
     ::this.navigationSuccess); 
    } 

    detached() { 
    this.subscription.dispose(); 
    } 
} 
+0

gute Sachen für die von uns manuell nav Aufbau - Danke – mujimu