2014-09-01 52 views
2

我試圖從博客列表鏈接到博客詳細信息頁面,但鏈接不起作用。我在這裏做錯了什麼?鏈接中的this._id是正確的ID。 這是我的路線從模板中傳遞meteor.js中的參數

this.route('blogdetail', { 
    path: '/groupsmain/:_id/blogs/:paramOne', 
    template:'groupdetail', 
    yieldTemplates: { 
     'blogdetail': {to: 'dynamiccontent'} 
    }, 
    controller: blogdetailController 
}); 

博客名單的網址是

http://localhost:3000/groupsmain/NQxvBfeNQE875HDRR/blogs 

,這是我的鏈接博客詳細

<h3><a href="{{pathFor 'blogdetail' paramOne=this._id}}">{{this.title}}</a></h3> 

回答

2

pathFor需要從目前的數據上下文的參數,而不是從你傳遞給它的參數。因此,你需要用#with幫手來改變背景:

<a href="{{#with _id=_id paramOne=this._id}}{{pathFor 'blogDetail'}}{{/with}}"> 
0

縱觀目前Iron Router's code(0.9.1版本),它看起來像pathFor助手使用方面,只有如果你不傳遞任何參數明確幫手電話。這可能是一個錯誤,因爲文檔示例顯示您可以混合這兩種情況。

所以你要麼必須通過pathFor助手的兩個參數,要麼在上下文中設置兩個值。您只在幫助程序中傳遞paramOne,並期望Iron Router在其他地方獲取_id參數。試試這個:

<a href="{{pathFor 'blogdetail' _id=whicheverIdYouNeedHere paramOne=_id}}">{{title}}</a> 

如果whicheverIdYouNeedHere實際上是父上下文的屬性,你可以使用關鍵字..得到它。你最終會得到類似的東西:

<a href="{{pathFor 'blogdetail' _id=../nameOfThePropertyFromTheParentContext paramOne=_id}}">{{title}}</a>