我为表单使用autoforms。现在我遇到了一个特殊的问题,我问自己是否可以通过自动方式解决这个问题。
使用我的autoforms,我想在MongoDB中构建一个简单的Category-Tree。只需要一个名字和一个父母(选择)。
这看起来像这样:
Categories.attachSchema(new SimpleSchema({
name : {
type: String,
label: "Name",
max: 200
},
parent : {
type : String,
allowedValues: [false, 'id_of_cat_1', 'id_of_cat_2', 'id_of_cat_3'],
optional : true,
autoform: {
options: [
{label: '- none -', value: false},
{label: 'cat 1', value: 'id_of_cat_1'},
{label: 'cat 2', value: 'id_of_cat_2'},
{label: 'cat 3', value: 'id_of_cat_3'}
]
}
}
}));
很短很简单。 autoforms现在创建了我的形式,我能够用它来做。
但是这里的问题是什么?问题是parent
- 值。它的类型是String
,因为这个选择" - none - "不可能。但是,如果没有给出父级,我希望数据库中的字段parent
具有boolean
值(false
)。
现在的问题是如何解决这个问题。
提供2种或更多类型的值是否更好 - 也可能?如果不是,则必须在对集合进行异常之后或之前覆盖该值 - 但这也不起作用,因为simpleSchema确实拒绝此过程。覆盖我使用matb33:collection-hooks
。
答案 0 :(得分:1)
您可以改为使用空字符串:
parent : {
type : String,
allowedValues: ['', 'id_of_cat_1', 'id_of_cat_2', 'id_of_cat_3'],
optional : true,
autoform: {
options: [
{label: '- none -', value: ''},
{label: 'cat 1', value: 'id_of_cat_1'},
{label: 'cat 2', value: 'id_of_cat_2'},
{label: 'cat 3', value: 'id_of_cat_3'}
]
}
}
这是有道理的,因为空字符串在if语句中用作false