2013-08-25 149 views
29

我有一個參數的簡單路徑:如何將參數傳遞給蝙蝠路由器的鐵路路由器?

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

我想有使用pathFor車把與_id幫手這裏:

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

這傳遞了_id標記爲不工作網址雖然...

回答

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屬性,所以路徑助手將會正常工作。如果要更改數據上下文,可以將另一個對象作爲第一個參數傳遞給幫助器,或者可以使用{{#with anotherDataContextObject}}塊幫助程序。

在v0.5.4中,您還可以使用Handlebars哈希鍵值來替換上下文對象。在開發分支中,這不再是事實。如果您在Handlebars助手中提供鍵值對作爲參數,則這些值將被附加到查詢字符串中。爲了說明這裏是在Dev分支的變化爲例:

{{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}}'中,第二個'article'可以被調用什麼?我在哪裏可以找到文檔? –

0

流星1.3.X我使用了pathFor助手的選項。

{{pathFor路線= '' 數據=查詢= '' 哈希= ''}}