Template.dynamic未传递数据上下文

时间:2014-12-08 08:19:13

标签: meteor

我在一个包中有一个列表模板(#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>

1 个答案:

答案 0 :(得分:3)

您将数据作为字符串传递?

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

您应该将数据作为变量传递,而不是&#34;&#34;

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

另外检查你的strataIndexItem模板是否命名为strataIndexItem:

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