【发布时间】:2017-03-11 21:00:00
【问题描述】:
我需要让模型的名称字段是虚拟的,通过将两个真实字段连接在一起来创建。此名称仅供显示。我已经尝试过文档中的虚拟示例,但没有运气。 Keystone 4 beta5。
var keystone = require('keystone')
_ = require('underscore');
var Types = keystone.Field.Types;
/**
* Foo Model
* ==================
*/
var Foo = new keystone.List('Foo', {
map: {name: 'fooname'},
track: true
});
Foo.add({
bar: { type: Types.Relationship, required: true, initial: true, label: 'Barref', ref: 'Bar', many: false },
order: { type: Types.Select, required: true, initial: true, label: 'Order', options: _.range(1,100) },
price: { type: Types.Money, format: '$0,0.00', label: 'Price', required: true, initial: true },
});
Foo.schema.virtual('fooname').get(function() {
return this.bar+ ' ' + this.order;
});
Foo.defaultColumns = 'fooname, bar, order, price';
Foo.register();
当我使用这个模型定义时,我在 defaultcolumns 列表中看不到虚拟名称。我想创建一个虚拟名称,以便将此模型用作关系时更容易查找。
【问题讨论】:
标签: keystonejs