2017-08-07 98 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...>標籤。