MeteorJS - 模板在重新订阅后不会重新订阅

时间:2016-01-21 16:41:39

标签: javascript meteor

我正在创建一个图库应用程序,并且我有一个类别栏,这样当我点击其中一个类别时,我希望图库只显示所选类别中的图像。

这是gallery.html

<template name="gallery">
   <div class="container col-sm-10"> 
   {{>gallerypost}}
    <div class="grid master">
    {{#each images}}
      <div class="grid-item">

       <div class="galleryimage" style="">
        {{#if isPortrait this.orientation}}
        <img src="{{c.url (nameHelper this.name) width=473 height=646   crop="scale"}}" class="img img-responsive" />
        {{else}}
        <img src="{{c.url (nameHelper this.name) width=646 height=473 crop="scale"}}" class="img img-responsive" />
        {{/if}}
        </div>
      </div>
      {{/each}}
    </div>
  </div>

client.js

Meteor.subscribe('allimages');
Session.setDefault('category', null);
Tracker.autorun(function(){
   Meteor.subscribe('categoryimages', Session.get('category'));
   console.log('this is working');
});

publications.js

Meteor.publish('allimages', function(){
  return ImageInfo.find();
});
Meteor.publish('categoryimages', function(category){
  return ImageInfo.find({category: category});
});

所以我知道我的Session变量有效,因为我在控制台中测试了它。但由于某种原因,数据库没有更新。是因为我使用的网格框架(Masonsry)?导致数据库没有订阅特定数据库的原因是什么?

1 个答案:

答案 0 :(得分:0)

您的自动运行中的reloadItems可能有助于http://masonry.desandro.com/methods.html#reloaditems

$('.container').masonry('reloadItems');