2016-08-03 6 views
1

Aureliaで子ルートを使用しようとしています。ネストされたルートの仕組みの周りに頭を浮かべているように見えません。すべてのルートは、アプリケーションのルートから、または現在のルータの場所からの相対パスですか?Aurelia子ルータとダイナミックスの子ルートを使用する方法

なぜ私のroute-hrefはこの例では機能しませんか?私はscreenという名前のこのルータでルートを持っており、それは私が、その後screens/screen/displayでダミーVM/Vを持って:idパラメータ

screens/list.ts 

@inject(Router) 
export class ScreensList { 
    heading; 
    router; 
    screens: any[]; 

    constructor(router){ 
    this.heading = 'Child Router'; 
    this.router = router; 
    this.screens = [ 
     { 
     id: 1, 
     name: 'my screen' 
     }, 
     { 
     id: 2, 
     name: 'my other screen' 
     } 
    ] 

    router.configure(config => { 
     config.map([ 
     // dynamic routes need a href, such as href: screen 
     { route: 'screen/:id', moduleId: 'screens/screen/display', name: 'screen', title: 'Screen #1' } 
     ]); 
    }); 
    } 
} 

リストビューに

screens/list.html 

<li repeat.for="screen of screens"> 
    <a route-href="route: 'screen', params: { id: screen.id }"/>Screen #${screen.id}</a> 
</li> 

を持っています。 入れ子になっている子ルータのモジュールには完全なファイルパスを指定する必要がありますか?私はそれがルートの親ルータの場所または少なくとも親の名前(ルート)に相対的なルートだろうと思った?

vendor-bundle.js:11582 ERROR [route-href] Error: A route with name ''screen', params: { id: screen.id }' could not be found. 
Check that `name: ''screen', params: { id: screen.id }'` was specified in the route's config. 
+0

Doh!私はタイプミスで別の答えからアンカータグを貼り付けたコピーを持っていました! これは正しい構文です。 '' ここではルート名(ここでは 'screen')が'route'のルートパターンは、':id'というパラメータをとります。 この単純なことでも、まだ多くの問題があります! –

答えて

関連する問題