根据另一个字段动态显示子模式(Object)字段的最佳方法是什么?在以下示例中,文档(Schemas.Main)可以包含Schemas.Items中定义的多个项目.填写项目所需的字段取决于所选类型.
例如,如果用户选择type =="type1",则需要填写字段"type1_field1"和"type1_field2".
解决方案可能需要使用autoForm并结合AutoForm.getFieldValue和设置afArrayField的字段,对吗?我尝试了很多组合,但是添加其他项目的能力都丢失了(缺少加号)或者我无法添加不同的项目(即所有项目都是type1).任何提示如何解决这个问题?
//Schemas.js
Schemas = {}; Collections = {};
Main = Collections.Main = new Mongo.Collection("Main");
Main.attachSchema(Schemas.Main);
Meteor.isClient && Template.registerHelper("Schemas", Schemas);
Schemas.Main = new SimpleSchema({
name: {
type: String
},
items: {
type: [Schemas.Items]
}
});
Schemas.Items = new SimpleSchema({
type: { //FormActions...
type: String,
allowedValues: ['type1', 'type2', 'type3'],
autoform: {
type: "selectize"
}
},
type1_field1: {
type: String
},
type1_field2: {
type: String
},
type2_field1: {
type: String
},
type2_field2: {
type: String
},
type3_field1: {
type: String …Run Code Online (Sandbox Code Playgroud) 我想基于另一列中的字符串向data.table添加列.这是我的数据和我尝试过的方法:
Params
1: { clientID : 459; time : 1386868908703; version : 6}
2: { clientID : 459; id : 52a9ea8b534b2b0b5000575f; time : 1386868824339; user : 459001}
3: { clientID : 988; time : 1388939739771}
4: { clientID : 459; id : 52a9ec00b73cbf0b210057e9; time : 1386868810519; user : 459001}
5: { clientID : 459; time : 1388090530634}
用于创建此表的代码:
DT = data.table(Params=c("{ clientID : 459; time : 1386868908703; version : 6}","{ clientID : 459; id : 52a9ea8b534b2b0b5000575f; time : 1386868824339; user …Run Code Online (Sandbox Code Playgroud)