无法通过Meteor中的Iron Router向模板发送数据上下文

时间:2016-05-15 19:59:53

标签: meteor

这是我的路由器:

Router.route('/cource/:courcePath', {
  name: 'Cource_page',
  template: 'Cource_page',
  data() {
    return Cources.find({ courcePath: this.params.courcePath });
  }
});

模板:

<template name="Cource_page">
  <div class="container">
    {{#each cources}}
      <h1>{{courceTitle}}</h1>
    {{/each}}
  </div>
</template>

帮助者:

Template.Cource_page.helpers({
  cources() {
    let courcePath = this.courcePath;
    console.log(courcePath);
    return Cources.find({ courcePath: courcePath });
  }
});

当我转到某个页面(例如http://localhost:3000/cource/my-new-cource)时,没有数据呈现,我在控制台中获得undefined(模板助手的输出)。我做错了什么?

2 个答案:

答案 0 :(得分:0)

您需要传递render指令

中的数据
Router.route('/post/:_id', function () {
  this.render('Post', {
    data: function () {
      return Posts.findOne({_id: this.params._id});
    }
  });
});

OR

您应该订阅路线中的数据:

Router.route('/cource/:courcePath', {
  name: 'Cource_page',
  template: 'Cource_page',
  subscriptions: function() {
    this.subscribe('courses', this.params.courcePath);
  }
});

查看指南以获取更多信息:

http://iron-meteor.github.io/iron-router/

答案 1 :(得分:0)

当您在i-r路线中提供数据上下文时,您不需要帮助程序。尝试:

Router.route('/cource/:courcePath', {
  name: 'Cource_page',
  template: 'Cource_page',
  data() {
    return Cources.find({ courcePath: this.params.courcePath });
  }
});

<template name="Cource_page">
  <div class="container">
    {{#each this}}
      <h1>{{courceTitle}}</h1>
    {{/each}}
  </div>
</template>