我在一个包中有一个列表模板(#each),我打算在许多不同的集合中使用它。由于模板位于包中,因此无法轻松自定义。所以我认为这是使用 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 :(得分:3)
您将数据作为字符串传递?
{{> Template.dynamic template="strataIndexItem" data="items" }}
您应该将数据作为变量传递,而不是&#34;&#34;
{{> Template.dynamic template="strataIndexItem" data=items }}
另外检查你的strataIndexItem模板是否命名为strataIndexItem:
<template name="strataIndexItem">
...
</template>