2016-08-31 3 views
2

に、私はルートにパラメータを渡すと、このコードを使用して、そこに移動することができます。がパラメータとアウレリアルートにナビゲートし、新しいブラウザタブ

this.router.navigateToRoute('CaseList', { RefNo: this.selectedData.RefNo 
}, { replace: true }) 

パラメータは、新しいページに正しく渡されます。

ただし、新しいタブでページを開きたいとします。私は試しました:

window.open(this.router.generate('CaseList', { RefNo: 
this.selectedData.RefNo }),'_blank'); 

これは新しいタブを開き、パラメータ値をURLに追加します。 http://localhost:49328/AppCaseMgmt/CaseList/20150000015、しかし、私はこのような活性化にパラメータの値を読み取ろうとします

activate(params) { 
    console.log('activate in case list'); 
    console.log(params.RefNo); 
    .... 
} 

それは未定義です。

私は

this.router.addRoute({ 
     route: "/AppCaseMgmt/CaseList/:RefNo", name: "CaseList", moduleId: "app/case-management/case-list", 
     title: "CaseMgmt:CaseManagement_SiteMapHeaderCaseManagement_title" }); 
    this.router.refreshNavigation(); 

を使用してルータに動的にルートを追加していますが、それは私の知る限り承知しているとの違いを作るべきではありません。 (私は代わりにconfig.mapへのルートを追加しようとしましたが、成功しませんでした)。私はこれが不可能だと考え始めている。誰にもアイデアはありますか?

おかげで、 アンソニー

答えて

4

私はこのエラーを再現することができませんでした。 しかし、あなたの信用をAureliaに戻したいので、ここではdemosourceのユースケースに従って作業しています。

同じViewModelを再利用する前に同じ問題が発生しましたが、その場合はactivatedイベントが2度目に呼び出されませんでした。 私はCheat Sheet

export class Product { 
    determineActivationStrategy(){ 
     return activationStrategy.replace; 
    } 
} 

に応じreplaceにVMのactivationStrategyを変更することで、これは近いソリューションにあなたをもたらす可能性があることを解決してきました。

+0

こんにちは。実際の例をありがとうございました。それが可能であることを知るのに大いに役立ちます。残念ながら私はまだ私のプロジェクトでそれを働かせていません。なぜ(または私がそれを修正したのか)という有益な情報があるとすぐに、ここに投稿します。 –

+0

それは私のために働いたが、すべてのルートでやらなければならなかったので、私はルータの定義にオプションを追加した。この答えで説明した:http://stackoverflow.com/a/41683970/815590 –

関連する問題