Javascript 流星内容不显示

Javascript 流星内容不显示,javascript,meteor,meteor-blaze,Javascript,Meteor,Meteor Blaze,我对Flow Router或我的模板级订阅有问题,但数据未在页面上呈现 为了以防万一,我在这里粘贴了一个指向整个github repo的链接: lib/routes.js listRoutes.route('/:slug', { name: 'list', subscriptions: function (params) { this.register('singleList', Meteor.subscribe('singleList', params.slug)); }

我对Flow Router或我的模板级订阅有问题,但数据未在页面上呈现

为了以防万一,我在这里粘贴了一个指向整个github repo的链接:

lib/routes.js

listRoutes.route('/:slug', {
  name: 'list',

  subscriptions: function (params) {
    this.register('singleList', Meteor.subscribe('singleList', params.slug));
  },

  action: function () {
    FlowLayout.render('mainLayout', {
      main: 'list'
    });
  }
});
server/publication/lists.js

Meteor.publish('singleList', function (slug) {
  return Lists.find({slug: slug});
});
client/lists/list.js

Template.list.helpers({
  singleList: function () {
    return Lists.find();
  }
});
Template.list.helpers({
  singleList: function () {
    return Lists.findOne();
  }
});
client/lists/list.html

<template name="list">

  {{#if isSubReady}}
    {{#with singleList}}

      <h2>Name: {{name}}</h2>

    {{/with}}
  {{/if}}

</template>

尝试将您的
singleList
助手更改为
findOne

Template.list.helpers({
  singleList: function () {
    var slug = FlowRouter.getParam("slug");
    return Lists.findOne({slug: slug});
  }
});

现在,您正试图显示光标的
name
属性,这就是
find()
返回的内容。您也不需要把手中的
{{{{with singleList}}

因此,问题是在我的助手中使用find()而不是简单地使用findOne()引起的。我一直坚持使用#with,因此不需要在所有属性前面加上singleList。在助手中使用参数是否比在发布中使用参数有好处?它们有不同的用途。您可以在发布中使用它来控制客户端上需要哪些数据。您可能有理由向管线发布多个列表,但在此特定帮助器中一次仅显示一个列表。这将取决于您的应用程序需要。