Aurelia lade Routen dynamisch / von fetch
Ich möchte Menüoptionen dynamisch laden. also frage ich mich den besten Ansatz
Ich kann den folgenden Code verwenden, um Routen hinzuzufügen, nachdem die Seite geladen wurde. Dies funktioniert für die normale Navigation, jedoch nicht während einer Aktualisierung.
Kann der Router ein Versprechen zurückgeben / Wie lade ich Menüpunkte in die Route?
@inject(HttpClient)
export class DocumentMenu {
router: Router;
documents : IDocument[];
heading = 'Document Router';
constructor(public http: HttpClient) {}
activate(): void {
this.http.fetch('http://localhost:17853/Document/GetDocuments?folderID=13244')
.then<IDocument[]>(response => response.json())
.then<IDocument[]>(docs => {
if ( docs ){
for( var doc of docs){
this.router.addRoute( { route : doc.DocumentID.toString(), name : doc.Name, moduleId: './documents/document', nav:true, title: doc.Name });
}
this.router.refreshNavigation();
}
return docs;
});
}
configureRouter(config: RouterConfiguration, router: Router) {
var routes = new Array();
routes.push(
{ route: 'index', name: 'index-name', moduleId: './documents/index', nav: false, title: 'Documents' } );
routes.push( { route: '', redirect: 'index' } );
config.map( routes );
this.router = router;
}
}