2014-12-08 20 views
1

我有一個列表模板(#each),我打算在多個不同的集合中使用該包。由於模板位於一個包中,因此它們不易定製。所以我想這是一個很好的例子,使用Template.dynamic。除了傳遞數據之外,一切都有效Template.dynamic不傳遞數據上下文

..我將數據拖入路由頁面並操縱數據以匹配動態模板。

Template.usersIndex.helpers({ 
    items: function() { 
    var users = Meteor.users.find({}).fetch(); 
    var items = users.filter(function(user) { 
     return user; 
    }).map(function(user){ 
     return { 
     name: user.profile.name, 
     description: user.emails[0].address, 
     tidbit: "hello" 
     }; 
    }); 
    return items 
    } 
}); 

...的數據完全傳遞給usersIndex模板。

<template name="usersIndex"> 
    <div id="gc-users-index-navbar"> 
    <h2>Title</h2> 
    </div> 
    <div id="gc-users-index" class="inner-content"> 
    {{> Template.dynamic template="strataIndexItem" data="items" }} 
    </div> 
</template> 

......但沒有骰子,動態模板呈現,但沒有數據。

<template name="themeIndex"> 
    <div class="list-group"> 
     {{#each items }} 
      <div class="list-group-item"> 
      <div class="row-content"> 
       <div class="least-content">{{tidbit}}</div> 
       <h4 class="list-group-item-heading">{{name}}</h4> 
       <p class="list-group-item-text">{{description}}</p> 
      </div> 
      </div> 
      <div class="list-group-separator"></div> 
     {{/each}} 
    </div> 
</template> 
+0

試着用'DynamicTemplate更換'Template.dynamic' '(來自'iron:dynamic-template',暗示爲'iron:router'),我已經在標準Meteor動態模板和iron實現之間經歷了衝突,當你開始使用後者時,我相信你必須堅持使用它。 – saimeunt 2014-12-08 08:43:55

+0

嗯...既然你總是將相同的字符串傳遞給'Template.dynamic',你真的不需要使用它。 – 2014-12-08 11:31:44

回答

3

您將數據作爲字符串傳遞?

{{> Template.dynamic template="strataIndexItem" data="items" }} 

你應該通過數據作爲變量,沒有 「」

{{> Template.dynamic template="strataIndexItem" data=items }} 

還要檢查,如果你的strataIndexItem模板名爲strataIndexItem:

<template name="strataIndexItem"> 
    ... 
</template>