2016-05-29 5 views
0

私はテンプレート "eventContainer"の鉄道ルートを持っています。このルートには、ユーザが以前のテンプレートで選択したイベントに応じたパラメータが含まれています。URLにデフォルトのルータパラメータであるhtmlのテンプレートを呼び出してください

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

これは正常です。ユーザーが2回目にログインすると、彼のホームページに「eventContainer」テンプレートがロードされますが、ハンドルバーのイベントコール以降、ルートパラメータを設定する方法を探しています。 (paramは最後に見たイベントでなければなりません)。

二重括弧{{> 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

あなたは、パラメータとしてヘルパーを渡すことができますあなたの例のPARAMヘルパーで

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

の中のルートparamはありませんので、undefinedを返しますホームパス。私は最後のイベントを(いくつかのコレクションに格納されて)参加させるためにparamヘルパーのクエリを変更しましたが、{{> eventContainer param}}はparamで指定されたルートには移動しません。 eventContainerがホームパスから内部にロードされている可能性があります。 – Ruben

+0

'eventContainer'テンプレートのルートがありますが、実際には'/eventContainer'に行き、そのようなテンプレートを見ますか?私はこのテンプレートを既存のものに埋め込むことができるので、データフローを扱うより納得のいく方法があることがわかります。 –

関連する問題