두 개의 실제 필드를 연결하여 만든 모델의 이름 필드를 가상으로 만들어야합니다. 이 이름은 표시 전용입니다. 나는 문서에서 가상 예제를 시도했지만 행운이 없다. 키스톤 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 –