2つの実フィールドを連結して作成したモデルの名前フィールドを仮想にする必要があります。この名前は表示専用です。私は文書で仮想の例を試しましたが、運はありません。キーストーン4ベータ5。バーチャルな「名前」フィールド?
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();
このモデル定義を使用すると、デフォルトの列リストに仮想名が表示されません。私はバーチャルネームを作りたいので、このモデルを関係として使うと検索が楽になります。
モデルのコードサンプルと詳細な説明を追加するための初期投稿を編集しました。 thx –