2016-08-30 9 views
1

まず、ui-routerを使用しています。ui-routerでオブジェクト全体を渡す

は、実際に私はstatesを通じてスラッグを渡しているとあなたは以下を参照することができますよう、それは、完璧に働いています:

.state('pages', { 
    url: '/:slug', 
    template: '<page-content></page-content>' 
}) 

<a ui-sref="pages({ slug: item.slug })" title="{{item.title}}" ng-repeat="item in $ctrl.menu_items">{{ item.title }}</a> 

この方法で私は$stateParamsにし、URLにスラグを得ることができます。 しかし、object全体を送信し、スラッグでURLを維持したい

あなたは私の試み見ることができます下:それは状態を経て、オブジェクト全体を渡すことに取り組んでいる

<a ui-sref="pages({ obj: item })" title="{{item.title}}" ng-repeat="item in $ctrl.menu_items">{{ item.title }}</a> 

configの状態

.state('pages', { 
    url: 'obj.slug', // -> What should I put here? (of course /:slug doesn't work anymore) 
    template: '<page-content></page-content>', 
    params: { obj: null } 
}) 

はHTMLを(私は$stateParamsを使ってそれを得ることができます)しかし、動的にURLを生成する。

objectの例:

{ 
    id: 6480, 
    title: "Test", 
    slug: "test" 
} 

だから、質問は次のとおりです。

その方法でparamsを使用してobjectのプロパティからURLを(生成する方法があること私がやっている)?例: 'site.com/test'? (testはURLに入れたいスラッグです)

+1

セットは、VARの文字列は= obj.slug'してから、オブジェクトリテラル –

+1

@ZeRubeusで、この文字列を使用し、状態の設定にのみ実行されます最初は – developer033

答えて

1

ロードされたURLの定義は変更できません。あなたは、その後、あなたのコントローラにオブジェクトを挿入することができますresolveプロパティからおそらく、そこからどこへ行く把握するために「スラッグ」の部分を使用し

.state('pages', { 
    url: '/pages/:slug', // -> What should I put here? 
    template: '<page-content></page-content>', 
    params: { obj: null } 
}) 

ような何かをしたいと思います。

編集:

は、たぶん、これはあなたが探しているものではありません。

.state('pages', { 
     url: '/:pageName' 
     template: '<page-content></page-content>', 
     params: { obj: null } 
    }) 

、あなたは私はあなたが必ずしもアンカータグのUI-SREFとのことをやって行くだろうかわからない状態

$state.go('pages', {pageName: item.Name, obj: item}); 

を変更。多分これ?そう、 `のようなオブジェクトリテラル、気にいら外varibleにobj.slot

<a ui-sref="pages({pageName: item.Name, obj: item})" 
+0

お返事ありがとうございます。私はすでにこれを試しましたが、うまくいきません。 URLはスラッグなしで保持されます。私は私の質問に文脈を追加しました。どうぞご覧ください。 – developer033

+0

@developer033 ok、これはもう少し明確です。私はレスポンスを更新しました。それがそれをしないなら、それをplunkに投げ捨てましょう。 – dwbartz

+0

私は数分前に(正確にはあなたの答えに投稿するように)、多くの試行の後に動作するように管理しますが、正しい答えを確認します。あなたのお時間をありがとうございました。乾杯: – developer033

関連する問題