2016-04-11 13 views
1

Ich habe eine benutzerdefinierte Funktion in einer Komponente implementiert, die die Informationen aus der URL übernimmt und ein Array mit dem richtigen Namen und Link zurückgibt, um sich als Breadcrumb zu verhalten. Das Problem ist, dass der letzte Schritt im Prozess, die App einen Übergang zu einer anderen Route/Modell in einer völlig anderen URL tun muss.Ember. Kommunikation zwischen Komponenten. Breadcrumbs

Wie kann ich den Breadcrumb in der endgültigen Vorlage anzeigen (in der anderen Route)?

Antwort

0

Wenn Sie EmberSimpleAuth verwenden, speichern Sie es nur in der Session:

App.BreadcrumbController = Ember.Controller.extend({ 

    session: Ember.inject.service(), 

    //... 

    this.get('session').set('data.breadcrumbs', breadcrumbs)  

}); 

App.anotherController = Ember.Controller.extend({ 

    session: Ember.inject.service(), 
    breadcrumbs: Ember.computed.alias(this.get('session.data.breadcrumbs')), 

}); 

Wenn nicht, können Sie die Anordnung von Paniermehl in der Applikationssteuerung speichern. Sie können es dann verwenden, wo Sie wollen.

App.BreadcrumbController = Ember.Controller.extend({ 

    //inject application controller so you can set a property on it 
    application: Ember.inject.controller(), 

    //... 

    //then once you have the breadcrumbs, store them in the application controller 
    application.set('breadcrumbs', breadcrumbs)  

}); 

App.anotherController = Ember.Controller.extend({ 

    //inject application controller and get the breadcrumb property 
    application: Ember.inject.controller(), 
    breadcrumbs: Ember.computed.alias(application.get('breadcrumbs')), 

}); 
Verwandte Themen