问题标签 [meteor-collection-hooks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
202 浏览

javascript - 流星收集钩子和简单模式验证的执行顺序在服务器和客户端上是不同的

我正在使用collection2、simple-schema 和meteor-collection-hooks。

第一次测试

第二次测试

在我在meteor shell中的第二次测试中,验证是在钩子之前运行的,所以post是无效的,钩子根本没有执行(它需要先通过钩子才有效)。

有趣的是,我在客户端上没有这个问题。在客户端,执行顺序似乎是有效的:hook THEN 验证。

你有同样的行为吗?知道为什么服务器上的顺序不同吗?


一种解决方法是在服务器上执行此操作:

但是我失去了验证,我想保留它......

Github 问题

0 投票
1 回答
111 浏览

javascript - 根据 Meteor 集合中的数量和价格更新总计

我有三个字段quantity,pricetotal

我只是更新quantityand price,所以total应该自动计算。

如何确保total始终正确更新?我想我应该使用收集挂钩。

0 投票
0 回答
156 浏览

angularjs - Angular Meteor 1.3 - 集合助手

我正在尝试使用 Angular Meteor 1.3 获得最优秀的 dburles/meteor-collection-helpers 包。我有两个系列。

和卡片:

我定义了一个集合助手如下:

我正在使用发布组合首先获取列表,然后通过订阅关联卡片。这很管用。但是在我的模板中,当我似乎无法弄清楚list.cards()在我的ng-repeat. 这是我的控制器的一个片段,以及相关的模板标记。

  • 我主要得到无限消化问题
  • 你不能调用list.cards(),不能使用函数ng-repeatng-repeat我尝试时遇到无限消化问题
  • 在示例中调用什么都不做,但我相信那是因为它返回一个函数。
  • 其他较旧的解决方案仅涉及添加范围函数和查询,但这似乎不起作用并且失去反应性。

有什么明显的吗?我已经看到其他一些人遇到了同样的问题,但是在早期版本的角流星中没有成功,希望有人能解决这个问题。谢谢。

0 投票
2 回答
71 浏览

javascript - 使用集合挂钩将新文档的 id 添加到现有文档中的数组

我曾经matb33:collection-hooks在插入另一个文档后插入一个文档,是否可以在插入后更新现有文档?我正在尝试执行以下操作:

  • 在模板Box中,其数据上下文具有_idof boxId,调用方法将新文档插入到Targets集合中
  • 获取_id新文档的 并将其添加到具有 的文档的数组_idboxId

由于this引用了钩子中的新文档,我不知道如何获取boxId更新正确的文档。

根据 Pawel 的回答,这里的最终代码:

0 投票
1 回答
456 浏览

arrays - Meteor Autoform,集合挂钩 - 如何在集合插入后插入用户配置文件数组?

在自动表单插入另一个集合(Meteor.users)后,我试图插入用户配置文件数组。

我的简单模式数组是这样设置的 - (在配置文件模式中)

这是我的集合挂钩方法,应该在列出插入后插入。

在我看来,这应该有效。表单在没有集合挂钩的情况下正确插入,但是现在当我提交表单时,我在 JS 控制台中收到此错误:

错误:过滤掉不在模式中的键后,您的修饰符现在为空(...)

console.log("stuff") 触发器,我在错误之前的控制台中看到了这一点。

有人对如何做到这一点有任何想法吗?

编辑-通过将其切换为修复了一些问题:

) });

现在由于 $ 运算符,我无法插入数组。

0 投票
1 回答
30 浏览

meteor - 路由器没有接收到 Collection 对象以路由到 Collection 文档

我最近遇到了一个问题,我的路由器似乎没有路由名称的集合。

我有一个名为 Nodes 的集合。在这个集合中,有许多来自许多节点的读取,每个节点中都有各种数据。尽管这些节点的名称属性不是唯一的(使用 simpleSchema)。这是特定节点可以发送许多数据点。稍后我将从集合中绘制这些数据。节点插入是

但是可能有数千个这样的插入。并插入数千个不同的节点。我发布了整个节点集合,并在侧边栏中的 js 文件中订阅了 Created 到整个集合。这只是为了测试这个问题。这是侧边栏js文件。

这在 HTML 加载我想要的唯一名称时效果很好。

但是,这并没有按照我想要的方式进行。当我这样做时,实际上没有路线。我希望路线是 /name 的唯一名称。哪个文件的哪个名称无关紧要。只要它是我点击的那个,它就是任何唯一的名称。这里是路由器

虽然如果我把

在侧边栏 js 文件中用于返回路线有效。我错过了 Iron 路由器的一些基本方面吗?此后的侧边栏也只返回整个集合中的每个 [object]。尽管您可以单击它们,但路由器可以对它们起作用。

0 投票
2 回答
192 浏览

meteor - Meteor:如何使用存储在集合中其他字段中的数组长度自动填充字段?

我有一个使用 SimpleSchema/Collection2 定义的集合,如下所示:

每当发生更改时,如何num_pieces自动填充数组的长度?pieces

我愿意使用 SimpleSchemaautoValuematb33:collection-hooks. pieces可能会通过很多运算符进行更改,例如$push, $pull, $set, 可能还有 Mongo 必须提供的更多运算符,我不知道如何应对这些可能性。理想情况下,只需查看pieces更新后的值,但您如何做到这一点并进行更改,而不会在 collection-hook 上陷入一点无限循环?

0 投票
2 回答
35 浏览

node.js - 未在第二个应用程序上调用收集挂钩

我有一个用 Meteor 1.4 编写的应用程序并在端口 3000(称为 A)上运行它知道我想在另一个应用程序(称为 B)中使用 A 应用程序数据库。在 B 控制台中,我像这样设置 MONGO_URL:

然后在端口 5000 上运行它。我在应用程序 A 上有一些收集钩子,在应用程序 B 上也有一些收集钩子,但钩子只在应用程序 A 中调用。

例如在 A 我们有:

在 B 中,我们有:

但它只是 log notes updated in A hook

如何解决?

0 投票
1 回答
128 浏览

mongodb - 流星收集钩子:获取数组中字段上的 $set 操作的上下文

我有一个包含对象数组的集合;架构如下所示:

现在我有一个集合挂钩 after.update 如果董事会的一名成员发生更新,它会正确触发。

我将如何获取发生更新的成员(或成员的 userId)(如果在我的情况下只更改了成员的 isActive?在这种情况下,修饰符如下所示:

我是否必须拆分字段名称才能找到成员?

我怎么能检测到这种情况(“会员被激活”)?

0 投票
1 回答
103 浏览

meteor - 更新流星收集后的服务器端计时器

我目前正在开发一个简单的实时多人游戏,但我被计时器逻辑困住了。

当游戏中有足够多的玩家时,游戏的状态设置为“已开始”,我想从那里启动一个 10 秒计时器并将其显示给所有客户端。

我的想法是在集合更新后使用集合挂钩并调用 setTimeout。但我真的不知道该怎么做,以及它是否是最好的解决方案。

另外也许我应该使用 cron 而不是计时器?