2016-07-21 16 views
0

私はAureliaスケルトンのようなルータリンクを持つnavbarを持っていますが、ルータビューを変更するルータビュー内のパラメータ化されたリンクも必要です。これは可能ですか?もしそうなら、どうすればApp.tsにあるルータにアクセスできますか?どんな助けでも感謝しています。Aurelia navbarの外でパラメータ化されたルーティング

答えて

2

ビューモデルにルータを注入するだけで済みます。

import { autoinject } from 'aurelia-framework'; 
import { Router } from 'aurelia-router'; 

@autoinject 
export class MyScreenInRouterView { 

    constructor(router: Router) { 
     this.router = router; 
    } 
} 

あなたのビューでそれを使用する:

<a route-href="route: routeName; params.bind: { id: user.id }">${user.name}</a> 

コードでURLを生成するには:

this.url = this.router.generate('routeName', { id: 123 }); 

をルートに移動するには:

this.router.navigateToRoute('routeName', { id: 123 }); 

このような詳細はhttp://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/cheat-sheet/7

+0

リンクした「あなたのビューで使用する」という問題は、あなたとAureliaのドキュメントの両方で問題になります。それは私にとってはうまくいかないことです。私はこれを使用しています: しかし、私はエラーを取得する: rror:名前のルートを「未定義」が見つかりませんでした。ルートの設定で 'name: 'undefined'が指定されていることを確認してください

$ {work.id}

を実行すると、IDが正しく表示されます。これは、エラーが発生したルート-hrefにバインドするときだけです。あなたがこれを解決する方法を知っているなら、大きな助けになるでしょう。 –

+0

ルート名のパラメータ部分を宣言する必要はありません。たとえば、「」と入力します。また、補間なしで変数をバインドする必要があります($ {}) –

+0

これは完璧に機能しています。 –

関連する問題