gpt4 book ai didi

javascript - 有没有办法使用meteor SimpleSchema + Autoforms 重用模板将数据存储到不同的相同集合中?

转载 作者:行者123 更新时间:2023-12-03 06:30:50 30 4
gpt4 key购买 nike

<小时/>

自从我找到了我一直在寻找的第一部分的答案以来,我正在对原始问题进行一些更新。

新问题:

到目前为止,我有一个架构定义,它附加到 3 个集合,即 C1、C2、C3。

 some_schema = new SimpleSchema ({
...
});
C1.attachSchema(some_schema);
C2.attachSchema(some_schema);
C3.attachSchema(some_schema);

我所做的最终目标是:

如果用户通过选项 A 选择了选项 B,则表单必须存储在 C1 集合中。同样,如果用户通过选项C选择了选项A,则表单必须存储在C2集合中。无论用户如何使用选项 A 结束,呈现给用户的表单本身都是相同的。

说到模板,我必须将它们复制三遍,因为不能存在多个具有相同名称的模板。

我对上述方法唯一的提示是,如果有 30 个而不是 3 个模板,那么我最终将不得不维护 30x3 = 90 个具有不同模板名称的模板,即使它们是相同的!

您知道有更好的方法来处理这个问题吗?

<小时/>

原始问题

我试图重用我编写的特定架构定义。是否可以根据条件将相同的架构定义附加到不同的集合?

最后,我需要根据选择的下拉列表将相同类型的对象存储在不同的集合中。

例如,我有 3 个选项可以从列表组中进行选择。A乙

我有一个为 X 定义的通用架构。

根据所做的选择(A B 或 C),我需要将架构附加到 collection1、collection2 或 collection3。

基本思想是..

some_schema = new SimpleSchema ({
...
});

if ( option A)
then collection1.attachSchema(some_schema);
else if (option B)
then collection2.attachSchema(some_schema);
else if (option C)
then collection3.attachSchema(some_schema);

这可能吗?如果是这样,我真的很感激一些指导我走向正确方向的指示。

谢谢

最佳答案

为什么这些模式是有条件的?您是否为 3 个集合中的每一个集合使用多个架构?该模式的目的是验证插入和更新的结构。此外,模式并不真正意味着动态附加/删除。我建议这样做:

collection1.attachSchema(some_schema);
collection2.attachSchema(some_schema);
collection3.attachSchema(some_schema);

然后根据您的选项将插入插入到适当的架构中。

最后,如果您有 3 个相同的模式,为什么不将它们合并为一个并使用某种 type 变量(本质上是您的 option 的值)来区分它们变量。

doc.type = option;
collection.insert(doc);

否则,每当您读取或写入这些对象之一时,您总是会遇到这个尴尬的集合选择器。

关于javascript - 有没有办法使用meteor SimpleSchema + Autoforms 重用模板将数据存储到不同的相同集合中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460734/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com