Динамический выбор типа в модели keystonejs - PullRequest
0 голосов
/ 15 мая 2018

Я хотел бы использовать комбинированный список в adminUI с полями, которые приходят из веб-службы.Я думал о том, чтобы получить данные с помощью ловушки pre 'find', а затем переопределить атрибут options в свойстве аудитории в Schema.

Схема:

Compliance.add({
  title: { type: Types.Text, required: true, initial: true, index: true }, 
  url: { type: Types.Url, required: true, initial: true },
  position: { type: Types.Number, initial: true },
  audience: { type: Types.Select, options: [], many: true, initial: true},
});

Hook:

Compliance.schema.pre('find', async function(next) {
  let audiences = await audienceService.getAudiences();
  next();
})

Но я не нашел способа связать данные.Любые идеи, как это можно сделать?

Спасибо

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете попробовать сделать функцию из опций:

function getAudiences() {
    return ['a', 'b', 'c'];
}

Compliance.add({
  title: { type: Types.Text, required: true, initial: true, index: true }, 
  url: { type: Types.Url, required: true, initial: true },
  position: { type: Types.Number, initial: true },
  audience: { type: Types.Select, many: true, initial: true, options: getAudiences() }
});

Результат, как показано ниже:

enter image description here

...