我要添加多重选择字段选项。但该文档state是不允许多选。但建议预挂钩的话。
存储在模型中的字符串或数字。显示在管理UI中的选择字段。不允许多个项目被选中。如果要提供多个值,可以使用TextArray或NumberArray,但也不会有相同的限制输入。您可以使用预存钩限制的选项。
我搜索前钩但似乎来自猫鼬。而在我的情况,我创建使用梯形校正模型,这样我可以在管理页面使用
var keystone = require('keystone');
var Types = keystone.Field.Types;
var MyModel = new keystone.List('MyModel');
MyModel.add({
aField: { type: Types.TextArray, required: false, initial: true },
});
让我怎么创建预挂钩?例如,我想限制要被设置的(“A”,“B”,“C”)的TextArray?
我已经设置了预存挂钩像这样(或与此类似。没有测试此代码)。
var keystone = require('keystone');
var Types = keystone.Field.Types;
/**
* Musician Model
* ==========
*/
var Musician = new keystone.List('Musician', {
map: { name: 'title' },
autokey: { path: 'slug', from: 'title', unique: true },
});
Musician.add({
title: { type: String, required: true },
published: { type: Types.Boolean, default: false },
musicianId: { type: String, note: noteUpdateId },
});
Musician.schema.pre('save', function (next) {
console.log(this.title);
console.log(this.isNew);
if (this.isNew) {
// generates a random ID when the item is created
this.musicianId = Math.random().toString(36).slice(-8);
}
next();
});
Musician.defaultColumns = 'title, published, musicianId';
Musician.register();