2016-05-29 28 views
0

我有一個模板「eventContainer」的鐵路線,其中包含一個參數,根據用戶在以前的模板中選擇了哪個事件。使用默認路由器參數在URL中的HTML調用模板

Router.route ('/eventContainer/:_id', { 
    template: "/eventContainer", 
    data: function(){  
}}); 

這工作正常。當用戶第二次登錄時,我加載他的主頁「eventContainer」模板,但我正在尋找一種方法來設置自handlebars事件調用以來的路由參數。 (這個參數應該是他們看過的最後一個事件)。

有一種方法可以使用雙括號{{> eventContainer}}從html中調用帶有路由參數的模板嗎?像{{> eventContainer RouterParam:xx}}

<template name="home"> 
    {{#if Template.subscriptionsReady}} 
    {{#if notEventJoined}} 
     {{> findEvent}} 
    {{else}} 
     {{> eventContainer}} 
    {{/if}} 
    {{else}} 
    Loading... 
    {{/if}} 
</template> 

和...

<template name="eventContainer"> 
    <!-- Here I read the Router.current().params._id --> 
</template> 

回答

0

您可以通過助手作爲參數:

<template name="home"> 
    {{> eventContainer param}} 
</template> 
Template.home.helpers({ 
    param: function() { 
    return Router.current().params._id; 
    } 
}); 
+0

在您的例子PARAM助手返回不確定,因爲沒有一個路線PARAM在家鄉的道路。我改變了param助手查詢以獲得最後加入的事件(存儲在某個集合中),但是調用{{> eventContainer param}}不會轉到param中指定的路由。可能是因爲eventContainer正從主路徑加載。 – Ruben

+0

你有一個'eventContainer'模板的路由,但用戶是否真的去了'/ eventContainer'並看到這樣的模板?正如我所看到的,您將這個模板嵌入到存在的模板中,因此有更多便利的方式來處理數據流。 –