流星:如何使助手功能反应?

时间:2014-08-25 06:26:25

标签: meteor

我正在尝试帮助重新运行并在更新此集合时返回更新的集合。

例如:

Template.imagegallery.myimages = function() {

   return Images.find({owner: Meteor.userId()}).fetch(); 

}

当我通过服务器端的Meteor.call向图像添加数据时,我的集合在客户端本地更新,但是辅助函数不会重新运行,图像也不会更新..... < / p>

知道我需要做什么才能将helper对象的return集合放入一个重新激活的上下文中?

1 个答案:

答案 0 :(得分:1)

返回游标而不是数组:

助手:

Template.imagegallery.myimages = function() {
   return Images.find({owner: Meteor.userId()});
}

模板:

<template name="imagegallery">
     {{#each myimages}}
           !!!DOSTUFF!!!
     {{/each}}
</template>

几乎在所有情况下取指都会破坏反应性。因为当你使用fetch时,Blaze只会收到一个数组。因此,Blaze从不创建反应性所需的依赖项,因为它不知道来自集合的数据,因为当您使用fetch时信息会丢失。

* Blaze是流星的模板系统