0

私は問題が何か分からない、私は単一のアイテムを表示するためにこのスニペットを持っているが、それは仮定どおりに動作しません。テンプレートベースのサブスクリプションを使用して流星jsを使用してMongo Dbで単一のアイテムを表示

出版ファイル:

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> 

それはスラッグに行きますが、他のコンテンツのデータは表示されません。ルートのスラグはうまくいきます。 routing with slug displays a blank page

答えて

0

テンプレート内で読み取ろうとしているSingleSchoolコレクションを初期化しましたか?

また、コレクションであることを忘れないでください。必要なアイテムを取得するには、SingleSchool.findOne({slug:...})を実行する必要があります。

Btwの場合、テンプレートファイルは2つの<template...>というタグがつぶれているように見えます。

関連する問題