2016-03-31 76 views
0

我想通過路由器傳遞一個PARAM流星:如何使用不同的路線相同的模板

我一直在努力:

Router.route('/someURL/:id', { 
    name: 'someTemplate', 
    data: function() { 
     var myData = someCollection.findOne({_id:this.params.id}); 
     myData.someParam = true; 
     return myData; 
    } 
}); 
Router.route('/anotherURL', { 
    name: 'someTemplate', 
    data: function() { 
     return {someParam:false}; 
    } 
}); 

,但它不工作

這是我的錯誤: 錯誤:名稱爲'someTemplate'的處理程序已經存在。

我該如何解決它。

注:我需要這個「someParam」

+0

使用正則表達式,這些表達式的計算結果爲true? http://stackoverflow.com/questions/27976879/meteors-iron-router-route-multiple-paths-to-one-template-but-still-dry – Akshay

+0

name是路線的名稱。使用'template:「someTemplate」'設置模板的名稱。 – MrE

回答

2

名稱是路徑不是你要使用的模板的名稱。路由名稱是每個路由的唯一標識符,與url非常相似,可用於在不使用完整url的情況下調用路由。你想要的東西是這樣的:

Router.route('/someURL/:id', { 
    name: 'someName', 
    template: 'someTemplate', 
    data: function() { 
     var myData = someCollection.findOne({_id:this.params.id}); 
     myData.someParam = true;  
     return myData; 
    } 
}); 
Router.route('/anotherURL', { 
    name: 'someOtherName', 
    template: 'someTemplate', 
    data: function() { 
     return {someParam:false}; 
    } 
}); 
相關問題