自动表单字段
AutoForm fields
我正在使用包 aldeed:autoform
创建表单
我的代码是这样的
CompanyData = new Mongo.Collection('companyData');
CompanyData.attachSchema(new SimpleSchema({
allFields: {
type: String,
allowedValues: ['title', 'logo', 'url'],
autoform: {
type: "selectize"
}
},
title:{
type:'String',
label:'Name',
unique:true,
max:100
},
logo:{
type:'String',
label:'Logo',
optional:true
}
}));
这就是我需要的
当用户在集合中插入数据时,我想添加一个名为 'createdBy' 的字段,其值为 userId。
当用户更新数据时,我想添加一个名为'updatedBy'的字段,其值为userId。
现在 'createdBy' 字段不应在用户更新数据时更新。但是 'updatedBy' 字段应该更新。
是的,当显示表单域时,将不显示 createdBy 和 updatedBy 域。
任何帮助
在 meteor-collection2 自述文件 (https://github.com/aldeed/meteor-collection2#autovalue) 上有明确的文档。
// Force value to be current date (on server) upon insert
// and prevent updates thereafter.
createdAt: {
type: Date,
autoValue: function() {
if (this.isInsert) {
return new Date;
} else if (this.isUpsert) {
return {$setOnInsert: new Date};
} else {
this.unset();
}
}
},
// Force value to be current date (on server) upon update
// and don't allow it to be set upon insert.
updatedAt: {
type: Date,
autoValue: function() {
if (this.isUpdate) {
return new Date();
}
},
denyInsert: true,
optional: true
}
在文档中的这个示例中,使用了 createdAt 和 updatedAt。您只需更改这些以引用用户 ID。
createdBy: {
type: String,
autoValue: function() {
if (this.isInsert) {
return this.userId;
} else if (this.isUpsert) {
return {$setOnInsert: this.userId};
} else {
this.unset();
}
}
},
updatedBy: {
type: String,
autoValue: function() {
if (this.isUpdate) {
return this.userId;
}
},
denyInsert: true,
optional: true
}
您可以将此添加到每个字段以防止它显示在 autoforms/quickforms:
autoform: {
omit: true
}
或者您可以在表单中使用 omitFields="createdBy,updatedBy"
。
我正在使用包 aldeed:autoform
创建表单我的代码是这样的
CompanyData = new Mongo.Collection('companyData');
CompanyData.attachSchema(new SimpleSchema({
allFields: {
type: String,
allowedValues: ['title', 'logo', 'url'],
autoform: {
type: "selectize"
}
},
title:{
type:'String',
label:'Name',
unique:true,
max:100
},
logo:{
type:'String',
label:'Logo',
optional:true
}
}));
这就是我需要的
当用户在集合中插入数据时,我想添加一个名为 'createdBy' 的字段,其值为 userId。
当用户更新数据时,我想添加一个名为'updatedBy'的字段,其值为userId。
现在 'createdBy' 字段不应在用户更新数据时更新。但是 'updatedBy' 字段应该更新。
是的,当显示表单域时,将不显示 createdBy 和 updatedBy 域。
任何帮助
在 meteor-collection2 自述文件 (https://github.com/aldeed/meteor-collection2#autovalue) 上有明确的文档。
// Force value to be current date (on server) upon insert // and prevent updates thereafter. createdAt: { type: Date, autoValue: function() { if (this.isInsert) { return new Date; } else if (this.isUpsert) { return {$setOnInsert: new Date}; } else { this.unset(); } } }, // Force value to be current date (on server) upon update // and don't allow it to be set upon insert. updatedAt: { type: Date, autoValue: function() { if (this.isUpdate) { return new Date(); } }, denyInsert: true, optional: true }
在文档中的这个示例中,使用了 createdAt 和 updatedAt。您只需更改这些以引用用户 ID。
createdBy: {
type: String,
autoValue: function() {
if (this.isInsert) {
return this.userId;
} else if (this.isUpsert) {
return {$setOnInsert: this.userId};
} else {
this.unset();
}
}
},
updatedBy: {
type: String,
autoValue: function() {
if (this.isUpdate) {
return this.userId;
}
},
denyInsert: true,
optional: true
}
您可以将此添加到每个字段以防止它显示在 autoforms/quickforms:
autoform: {
omit: true
}
或者您可以在表单中使用 omitFields="createdBy,updatedBy"
。