0
私はAureliaスケルトンのようなルータリンクを持つnavbarを持っていますが、ルータビューを変更するルータビュー内のパラメータ化されたリンクも必要です。これは可能ですか?もしそうなら、どうすればApp.tsにあるルータにアクセスできますか?どんな助けでも感謝しています。Aurelia navbarの外でパラメータ化されたルーティング
私はAureliaスケルトンのようなルータリンクを持つnavbarを持っていますが、ルータビューを変更するルータビュー内のパラメータ化されたリンクも必要です。これは可能ですか?もしそうなら、どうすればApp.tsにあるルータにアクセスできますか?どんな助けでも感謝しています。Aurelia navbarの外でパラメータ化されたルーティング
ビューモデルにルータを注入するだけで済みます。
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
リンクした「あなたのビューで使用する」という問題は、あなたとAureliaのドキュメントの両方で問題になります。それは私にとってはうまくいかないことです。私はこれを使用しています: しかし、私はエラーを取得する: rror:名前のルートを「未定義」が見つかりませんでした。ルートの設定で 'name: 'undefined'が指定されていることを確認してください
$ {work.id}
を実行すると、IDが正しく表示されます。これは、エラーが発生したルート-hrefにバインドするときだけです。あなたがこれを解決する方法を知っているなら、大きな助けになるでしょう。 –ルート名のパラメータ部分を宣言する必要はありません。たとえば、「」と入力します。また、補間なしで変数をバインドする必要があります($ {}) –
これは完璧に機能しています。 –