Meteor使用Template.registerHelpers,

Meteor使用Template.registerHelpers,,meteor,registerhelper,Meteor,Registerhelper,我正在尝试将两个初级课程合并在一起(&)。我能够独立完成这两门课,没有问题 我正在使用Iron:Router路由到各种模板。我在尝试访问模板中的模板时遇到问题。正确的结果不会显示在“aostasks”页面上 .js: Router.route('aostask', { template: 'aostask' }); Tasks = new Mongo.Collection("tasks"); if (Meteor.isClient) { // This code only r

我正在尝试将两个初级课程合并在一起(&)。我能够独立完成这两门课,没有问题

我正在使用
Iron:Router
路由到各种模板。我在尝试访问模板中的模板时遇到问题。正确的结果不会显示在“aostasks”页面上

.js

Router.route('aostask', {

    template: 'aostask'
});

 Tasks = new Mongo.Collection("tasks");

if (Meteor.isClient) {
  // This code only runs on the client
  Template.registerHelpers('task', function () {
      return tasks.find({});
    })
  };
<template name= "aostask">

    <head>
  <title>Todo List</title>
</head>

<body>
  <div class="container">
    <header>
      <h1>Todo List</h1>
    </header>

    <ul>
      {{#each tasks}}
        {{> task}}
      {{/each}}
    </ul>
  </div>
</body>



</template>
<template name="task">
  <li>{{text}}</li>
</template>
.html

Router.route('aostask', {

    template: 'aostask'
});

 Tasks = new Mongo.Collection("tasks");

if (Meteor.isClient) {
  // This code only runs on the client
  Template.registerHelpers('task', function () {
      return tasks.find({});
    })
  };
<template name= "aostask">

    <head>
  <title>Todo List</title>
</head>

<body>
  <div class="container">
    <header>
      <h1>Todo List</h1>
    </header>

    <ul>
      {{#each tasks}}
        {{> task}}
      {{/each}}
    </ul>
  </div>
</body>



</template>
<template name="task">
  <li>{{text}}</li>
</template>

事項清單
事項清單
    {{{#每个任务} {{>任务} {{/每个}}
  • {{text}}
  • 结果:

    标题正确的页面。但是,它没有列出我在mongo集合中的任务。问题是我使用registerHelper函数不正确吗?我应该使用其他功能吗


    提前谢谢

    您的助手姓名有拼写错误

    Template.registerHelper('tasks', function () {
          return tasks.find({});
        })
      };
    

    任务
    任务

    您的助手已使用与模板相同的名称注册。这应该只是“任务”。Template.registerHelper应为Template.registerHelper

    if (Meteor.isClient) {
      // This code only runs on the client
      Template.registerHelper('task', function () {
          return Tasks.find({});
        })
      };
    

    谢谢更正集合的名称为“Tasks”,大写字母为T。此后,我更新了命名约定。Tasksdb=新的Mongo.Collection(“任务”);if(Meteor.isClient){//此代码仅在客户端模板.registerHelper('tasks',函数(){return Tasksdb.find({});})上运行;