【问题标题】:Meteor: How to make a helper function reactive?Meteor:如何使辅助函数具有反应性?
【发布时间】:2014-10-18 06:14:52
【问题描述】:

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

例如:

Template.imagegallery.myimages = function() {

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

}

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

知道我需要做什么才能将辅助对象的返回集合放入反应性上下文中吗?

【问题讨论】:

  • 首先,您可能不需要使用fetch。如果您打算将此帮助程序与witch 一起使用,那么返回一个游标就足够了。另外,你能告诉我们你调用这个助手的代码部分吗?
  • 为什么不创建一个这样做的出版物呢?出版物本质上是反应性的。我第二个关于代码的附录。

标签: meteor


【解决方案1】:

返回一个游标而不是一个数组:

助手:

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

模板:

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

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

*Blaze 是流星的模板系统

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2016-01-07
    • 2016-01-08
    • 2015-12-23
    • 2014-07-29
    • 2018-08-22
    • 1970-01-01
    相关资源
    最近更新 更多