2016-07-09 9 views
0

So habe ich ein Problem, wo mein Sub-Router nicht funktioniert, wenn ich es in einer Vorlage werfe. Hier ist, was ich meine:Aurelia Child Sub Router

Mein app.js hat diese Route, die funktioniert:

{ 
    route: ['accounts'], 
    name: 'accounts', 
    moduleId: '../accounts/account-router', 
    nav: false, 
    title: 'QualBoard', 
}, 

In Konten-Router Ich habe (das funktioniert):

export class AccountRouter { 
    configureRouter(config) { 
    config.map([ 
     { 
     route: [':accountId'], 
     name: 'account', 
     moduleId: './account', 
     nav: false, 
     title: 'QualBoard', 
     }, 
     { 
     route: [':id/users'], 
     name: 'users', 
     moduleId: '../users/users-router', 
     nav: false, 
     title: 'QualBoard', 
     }, 
    ]); 
    } 
} 

Innerhalb von account.html ich habe eine Vorlage Anruf an eine andere Route:

<template> 
    <require from="./account-overview.html"></require> 
    <require from="./sub-view/subview-router"></require> 

    <div class="content-panel"> 
    <account-overview account.bind="account"></account-overview> 
    <subview-router></subview-router> 
    </div> 
</template> 

so ist der subview Router sieht so aus:

export class SubviewRouter { 

    configureRouter(config, router) { 
    config.map([ 
     { 
     route: ['projects', ''], 
     name: 'projects', 
     moduleId: './projects', 
     nav: true, 
     title: 'Projects', 
     settings: { 
      class: 'icon-ion-briefcase', 
     }, 
     }, 
    ]); 

    this.router = router; 
    } 
} 

Und die Subview-router.html:

<template> 
    <router-view containerless></router-view> 
</template> 

Alle Routen arbeiten, aber die endgültige subview Router. Seltsamerweise kann ich den Code im Subview-Router nehmen und ihn in meine account.js-Datei einfügen sowie mit auslagern und es wird funktionieren. Warum funktioniert der Subview-Router nicht?

+0

Versuchen Sie, die Router-Pipeline in einem benutzerdefinierten Element einzubinden? Ich denke nicht, dass das möglich ist, und ich denke auch nicht, dass es einen Sinn ergibt. Nicht sicher, ob ich dein Problem verstanden habe ... –

+0

Ich meine, nur Elemente, die vom Router aufgerufen wurden, können einen Subrouter haben. In Ihrem Fall wurde SubviewRouter nicht vom Router angerufen. –

+0

Ah, ich habe bemerkt, dass es in account.js funktioniert hat, aber nicht im Subview-Router. Ich dachte, es würde genauso sein. Wollte meinen Router-Code aus der account.js abstrahieren – allencoded

Antwort

0

Versuchen Sie, Ihr Nav zu ändern: false to nav: true.

Verwandte Themen