2013-08-25 10 views
29

私はパラメータを使用して、簡単なルートを持っている:Iron-Router for MeteoriteのハンドルバーのpathForにパラメータを渡すにはどうすればいいですか?

this.route('article', { 
     path: '/article/:_id', 
     data: function() { return Articles.findOne(this.params._id); } 
    }); 

私は_idと、ここで使用pathForハンドルヘルパーを持っているしたいと思います:

{{#each articles}} 
<li><a href="{{pathFor 'article' _id}}">{{title}}</a></li> 
{{/each}} 

このdoesntの仕事をに_idタ​​グを渡すためあなたは、パラメータを渡す方法いえURL ...

答えて

61
<li><a href="{{pathFor 'article' _id=this._id }}">{{title}}</a></li> 

ザッツ

+4

いいえ、これは '/物品/ ABCDを作成/?_ ID = abcd'。 – nalply

+1

hmm。私のために働くと思われる... – Chet

+1

おそらくあなたは古いバージョンがあります。 – nalply

13

この例では、パラメータを渡す必要はありません。 pathForヘルパーは自動的に現在のデータコンテキストを使用し、そのオブジェクトからプロパティを取得します。 {{#each articles}}イテレータがあるので、pathForの現在のデータコンテキストは、リスト(記事)の現在の項目に設定されます。記事オブジェクトは_idのプロパティを持つ必要があります。そのため、パスヘルパーは動作します。データコンテキストを変更する場合は、別のオブジェクトを最初のパラメータとしてpathForヘルパーに渡すか、{{#with anotherDataContextObject}}ブロックヘルパーを使用することができます。

v0.5.4では、コンテキストオブジェクトを置き換えるためにHandlebarsハッシュキー値を使用することもできます。 devブランチではこれはもはや真実ではありません。 Handlebarsヘルパーでパラメータとしてキーの値のペアを指定すると、その値がクエリ文字列に追加されます。流星1.3.Xで

{{pathFor 'article' article q=some+query}} 
//=> "/article/abcd/?q=some+query 

それとも

{{#with article}} 
{{pathFor 'article' q=some+query}} 
//=> "/article/abcd/?q=some+query 
{{/with}} 
+0

'{{pathFor 'article' article q = some + query}}'では、2番目の 'article'を何かと呼ぶことができますか?ドキュメントはどこにありますか? –

0

私はpathForヘルパーのオプションを使用しています:ここで説明するためにdevの枝の変化を例です。

{{pathForルート= '' =データクエリ= '' ハッシュ= ''}}

関連する問題