2013-04-15 12 views
6

link-toヘルパーを使用して経路パスで変数を渡して動的にリンクを生成する方法はありますか?例えばEmberJS - linkToを使って動的にリンクを生成する方法は?

、代わりにハードこのようなパスコーディングの:私はlink-toヘルパーにこのようなパスを保持する変数を渡すことができるようにしたい

{{#linkTo "route.subroute" model}}{{model.title}}{{/linkTo}} 

を:

{{#linkTo destination model}}{{model.title}}{{/linkTo}} 

このケースでは、このパスでのみ異なるテンプレートを統合することができます。たとえば、それぞれに異なる宛先を持つコレクションが2つある場合などです。各ヘルパーでレンダリングするとき、テンプレートはlink-toのパスを除いて同じです。

この変数をビューのコントローラに保存して渡すことができれば、両方のリストに1つのテンプレートしか使用できません。

私は約手動で次のようにパスを構築すると思っています

<a {{bindAttr href="destination"}}>{{model.title}}</a> 

しかし、これは私が必要とするアクティブな状態を判断するために、ルータとの統合を持っていません。

+0

見https://github.com/emberjs/ember.js/pull/2252とhttps://github.com/emberjs/ember.js/issues/2462私はそれが現在不可能だと思います。 –

答えて

2

リンクパスを使用して変数を渡すことで、linkToヘルパーを使用して動的にリンクを生成する方法はありますか?

現在のところありません。

これは、このパスでのみ異なるテンプレートを統合できるようにするためのケースです。たとえば、それぞれに異なる宛先を持つコレクションが2つある場合などです。

合意これは有効な使用例です。私はlinkToヘルパーが今後これをサポートすることを期待しています。あなたが唯一の2つのコレクションを持っているその間ので、あなたは、モデルのdestinationプロパティで指定{{action}}を使用し、ルート名によってトランジションのイベントを処理することができ、テンプレートの代わりに{{linkTo}}

{{#if isRouteOne}} 
    {{#linkTo "routeOne.subrouteOne" model}}{{model.title}}{{/linkTo}} 
{{else}} 
    {{#linkTo "routeTwo.subrouteTwo" model}}{{model.title}}{{/linkTo}} 
{{/if}} 
+0

さて、私は問題の単純化として 'two'を書いた。残念ながら、私は実際に7を持っています。多くのブール変数を管理することはやや面倒ですが、単純なケースでは、一時的な回避策として答えが欲しいと思います。 –

+0

lolは7と合意しました。それは楽しいことではありません。その場合、小さなハンドルバーのヘルパーを書くのが理にかなっているかもしれません。うまくいけば、PR @ sly7_7はすぐに併合されるだろう。 –

2

に条件文でこれを達成することができます。

+0

彼は "アクティブ"なサポートが必要です。 – Nonconformist

0

もう1つの非常によく似た質問があります。私はanswerこの質問をしています。この解決方法はインラインバージョンlink-toヘルパーを使用して行うことができます。

この状況で

、我々は持っているでしょう:

にコンパイルされるだろう
{{link-to model.title destination model}} 

<a href="#/route/subroute/3856"> 
    Click me 
</a> 
関連する問題