2016-07-21 10 views
0
policyClicked(policy: Policy){ 
    console.log(policy.name); 
    this.router.navigate(['/policy',{projectId: this.project._id},{policyName: policy.name}]); 
} 

このコードを実行して、提供されたパスにルーティングしようとしています。しかし、私はエラーを取得しておいてください。ルータパスパラメータが[object Object]に変更されますか。

エラー:任意のルートを照合することはできません:「政策; PROJECTID = uSpGcJFtxHK3vLGht/[対象オブジェクト]」

を最後のパラメータが失われたか何かになっているよう。値が未定義であるかどうかを調べるためにいくつかのログをそこに入れます。ルートが定義されている場所を参照してください。あなたの最初の例で

const routes: RouterConfig = [ 
    {path: '', component: DashBoardHome}, 
    {path: 'project/:projectSearchResultId', component:  ProjectSearchResultsDetails}, 
    {path: 'search/:projectSearchValue', component: ProjectSearchResults}, 
    { path: 'login',  component: Login }, 
    { path: 'signup',  component: Signup }, 
    { path: 'recover',  component: Recover }, 
    {path: 'policy/:projectId/:policyName', component: PolicyDetails} 
]; 
+0

をので:

あなたも、このようにそれをしようと考えるかもしれ]); 'それは働く。これは正しい方法ですか? – Timelord

答えて

0

は、あなたがその奇妙なエラーを得た理由({}中括弧内のコード)Javascriptが[オブジェクト]として解釈されるように、これはオブジェクトを渡しています。中かっこなしで渡すことで、Javascriptは実際のテキストを使用できます。 `this.router.navigate([ '/政策'、this.project._id、policy.name:私は、コードを変更した場合

var URL = '/policy/' + this.project._id + '/' + policy.name; 
this.router.navigate(URL); 
関連する問題