2017-08-07 59 views
0

我不知道什么问题是,我有这个片段来显示单个项目,但它不工作,假设,我做对了什么?在Mongo Db中使用流星js使用基于模板的订阅显示单个项目

发布文件:

Meteor.publish('SingleSchool', function (myslug) { 
     check(myslug, String); 
     if (!this.userId) { 
      throw new Meteor.Error('Not authorized'); 
      return false; 
     } else { 
      return SchoolDb.find({slug: myslug}); 
     } 
    }) 

模板基本预订:

Template.view.onCreated(function() { 
    var instance = this; 
    instance.autorun(function() { 
     var slug = FlowRouter.getParam('myslug'); 
     return Meteor.subscribe('SingleSchool', slug); 
    }); 
}); 

路线:

FlowRouter.route('/school/:myslug', { 
    name: 'view', 
    action: function (params) { 
    BlazeLayout.render('sidebarschool', {sidebars: 'view'}); 
    } 
}) 

模板文件:

<template name="view"> 
    {{#if currentUser}} 
    {{#if Template.subscriptionsReady }} 
     {{#if SingleSchool}} 
      {{#with SingleSchool}} 
       <p>{{varibablecalled}}</p> 
      {{/with}} 
     {{else}} 
      <p>Loading...</p> 
     {{/if}} 
    {{/if}} 
</template> 

它进入slug,但没有数据显示其他内容。路线中的slu works很好。 routing with slug displays a blank page

回答

0

您是否初始化了您想要从模板中读取的SingleSchool集合?

另外,不要忘记,这是集合,所以你应该做SingleSchool.findOne({slug:...})获得需要的物品。

顺便说一句,你的模板文件看起来像搞砸了:两个<template...>标签。