2016-08-08 38 views
1

Nehmen wir an, ich möchte Aurelias feature ... feature verwenden, um eine "Benutzer" -Funktion zur Verwaltung von Benutzern zu erstellen, und ich habe eine andere Ansicht für die verschiedenen Crud-Operationen. Wie organisiere ich das Routing für create read update delete? Ist das in der Funktion erledigt? ist es in der App gemacht? eine Kombination davon? Bitte geben Sie ein Beispiel an.Wie funktioniert Routing mit einem Feature in Aurelia?

Antwort

0

Man fügt nicht einfach Routen durch ein Feature hinzu.

Wenn Sie jedoch eine größere Anwendung erstellen, können Sie mithilfe des Dependency-Injection-Containers ein "route" -Objekt für Ihre Anwendung verfügbar machen, das Funktionen nutzen und erweitern kann.

main.js

import { MyRouteConfig } from 'myRouteConfig'; 

@inject(MyRouteConfig) 
export class App { 

    constructor(config) { 
     this.routes = config.routes; 
    } 

    configureRouter(config, router) { 
     config.map(this.routes); 
    } 
} 

Ein Merkmal ist durch eine Funktion configure gezogen, die die Aurelia Objekt übergeben wird. Sie können den Aurelia-Objekt-DI-Container verwenden, um eine Instanz Ihres MyRouteConfig-Objekts abzurufen.

Merkmal/index.js

import { MyRouteConfig } from '../myRouteConfig'; 

export function configure(aurelia) { 

    let config = aurelia.container.get(MyRouteConfig); 
    Array.prototype.push.apply(config.routes, [ 
     { route: 'feature', moduleId: 'feature/home' }, 
     { route: 'feature/edit', moduleId: 'feature/edit' } 
    ]) 
} 

jedoch dies bei allen keine bewährte Methode ist. Es ist im besten Fall ein cleverer Einsatz der Werkzeuge und im schlimmsten Fall ein Hack. Dieser Ansatz birgt viele Probleme, einschließlich der Schwierigkeit, die richtigen Modulpfade und überlappenden Routen zu laden, und Sie sollten diese Strategie nur verwenden, wenn Sie wirklich wissen, was Sie tun. Das heißt, es kann getan werden.

+0

Was ist der empfohlene Weg? Ich glaube, ich bin verwirrt, weil ich Routen in ein Unterverzeichnis habe, das kein Feature ist. Aber ich denke darüber nach, diese Features zu erstellen und herauszufinden, wie ich aus Routing-Sicht damit arbeiten kann. – xenoterracide

+0

Wenn es Routen gibt, dann ist dies wahrscheinlich ein wesentlicher Bestandteil Ihrer Anwendung. Features sind wie kleine lokale Plugins, modular. Verwenden Sie keine Funktionen für integrale Teile Ihrer Anwendung. –

+0

Bitte upvote, wenn diese Antwort Ihnen geholfen hat, akzeptieren, wenn es Ihre Frage beantwortet hat. –