2017-03-03 2 views
1

Wenn ich main.ts Datei eingerichtet haben, wie so ...Aurelia mehrseitige App?

Main.ts

import {Aurelia} from 'aurelia-framework' 
import environment from './environment'; 

//Configure Bluebird Promises. 
(<any>Promise).config({ 
    warnings: { 
    wForgottenReturn: false 
    } 
}); 

export function configure(aurelia: Aurelia) { 
    aurelia.use 
    .standardConfiguration() 
    .feature('resources'); 

    if (environment.debug) { 
    aurelia.use.developmentLogging(); 
    } 

    if (environment.testing) { 
    aurelia.use.plugin('aurelia-testing'); 
    } 



    // PLAYING AROUND - Log to Console the Value of ShowLanding Session Storage 
    let showLanding = false; 
    console.log(showLanding); 
    // let showLanding = sessionStorage.getItem("show_landing"); 

    if (showLanding || showLanding === null) { 
    aurelia.start().then(() => aurelia.setRoot('landing')); 
    } else { 
    aurelia.start().then(() => aurelia.setRoot('blog/blog')); 
    } 
} 

Ich habe eine "zielseite.html/.ts" Datei in der Wurzel meiner app, und dieses bisschen Code scheint gut zu funktionieren. Das heißt, wenn "showLanding = false" wird die App auf meine "blog.html" Seite geladen, und wenn es wahr ist, wird sie auf meine "Landing.html" Seite geladen.

Was ich versuche eine Admin-Seite zu tun ist, erstellen. Immer wenn die URL besucht wird ".... com/admin" Bring mich zur Seite "admin.html", die ich eingerichtet habe.

Ist das möglich Front-End zu tun? Nur anders wüsste ich, dass URL und static-serve von der Serverroute übereinstimmen, ja?

+1

Um klar zu sein, benötigen, sind Sie wirklich unterschiedliche Wurzeln haben? Könnten Sie nicht einfach den eingebauten Router benutzen? Weitere Informationen finden Sie in der Hub-Dokumentation: http://aurelia.io/hub.html#/doc/article/aurelia/router/latest/router-configuration/ – kettch

+0

Weitere Informationen finden Sie im Abschnitt "Push State" unter http://aurelia.io /hub.html#/doc/article/aurelia/router/latest/router-configuration/1 Dies ermöglicht es Ihnen, foo.com/admin anstelle von foo.com/#/admin zu haben –

+0

Das ist, was ich konfiguriert habe, aber nicht Arbeiten. Docs sagen, ich brauche "serverseitige Konfiguration", aber es ist nicht ausführlich und ich bin mir nicht sicher, was dort getan werden müsste. Ich würde denken, ob der Push-Status an/aus ist, wenn ich auf .../#/admin oder .../admin gehe, sollte es zu dieser Seite navigieren, aber meine Admin-Seite geht einfach wohin die Router-Ansicht ist. Wie komme ich dazu, nur zur Admin-Ansicht zu navigieren? –

Antwort

0

ich es geschafft, diese Funktion zu erhalten (so, wie ich es arbeiten wollte), indem einfach nur lesen window.location.pathname und Einstellung mein Admin-Seite als App root.

so my Main.ts was changed to: 

    ... 

    if (showLanding || showLanding === null) { 
    aurelia.start().then(() => aurelia.setRoot('landing')); 
    } else if (window.location.pathname == "/admin") { 
    aurelia.start().then(() => aurelia.setRoot('admin/admin')); 
    } else { 
    aurelia.start().then(() => aurelia.setRoot('blog/blog')); 
    } 
} 

Ich bin sicher, dass dies wahrscheinlich nicht der beste Weg ist, dies zu tun, aber es scheint jetzt zu funktionieren. Ich bin mir sicher und aktualisiere dies, wenn es Probleme gibt.

Auch, wenn jemand anderes mit irgendwelchen alternativen Gedanken läuten will, Anliegen, Anregungen oder Feedback, bitte! Vielen Dank!