截至目前,我有一个模式定义,它将自身附加到3个集合,即C1,C2,C3。
some_schema = new SimpleSchema ({
...
});
C1.attachSchema(some_schema);
C2.attachSchema(some_schema);
C3.attachSchema(some_schema);
我所做的最终目标是:
如果用户选择option B via option A
,则表单必须为stored in C1 Collection
。同样,如果用户选择option A via option C
,则表单必须为stored in C2 collection
。
无论用户如何使用option A
结束,呈现给用户的表单都是相同的。
当涉及模板时,我不得不复制它们三次,因为不能存在多个名称相同的模板。
我对上述方法的唯一抱怨是,如果有30个而不是3个模板,那么我将不得不最终处理维护30x3 = 90个具有不同模板名称的模板,即使它们是相同的!
您是否碰巧知道处理此问题的更好方法?
我试图重用我编写的特定架构定义。是否可以根据条件将相同的模式定义附加到不同的集合?
最后,我需要根据选择的下拉列表将相同类型的对象存储在不同的集合中。
例如,我有3个选项可供选择列表组。 一个 乙 ç
我有为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);
这可能吗?如果是这样,我真的很感激一些指示让我朝着正确的方向前进。
由于
答案 0 :(得分:1)
为什么这些模式会有条件?您是否为3个集合中的每个集合使用多个模式?架构的目的是验证插入和更新的结构。另外,模式实际上并不意味着动态地附加/删除。我建议你这样做:
collection1.attachSchema(some_schema);
collection2.attachSchema(some_schema);
collection3.attachSchema(some_schema);
然后根据您的选项插入适当的模式。
最后,如果您有3个相同的模式,为什么不将它们合并为一个,并用某种type
变量区分它们(基本上是option
变量的值。
doc.type = option;
collection.insert(doc);
否则,每当您阅读或写下其中一个对象时,您总会有这个笨拙的集合选择器。