2016-10-14 2 views
1

Я хотел бы сгенерировать Url в списке в keystoneJS. Я предпочитаю, чтобы URL-адрес не хранился в монго.Создать Url из виртуального поля или из значения другого поля

Покушение:

  • Виртуальные поля: работает, но не будет генерировать сырой HTML для HREF.
  • Types.Url: Я получаю HREF формат, но мне нужно значение из другого поля в моей модели, поэтому он генерирует URL с неопределенным .. Пример:
{ type: Types.Url, label: "Link", default: "[http://www.stackoverflow.com/ask?id=][1]" + this._id } 

Любой помощь в том, как это сделать, будет очень признательна.

ответ

0

Для вашего второго пункта this._id недоступен при добавлении полей в модель, следовательно, почему вы получаете undefined.

Вместо этого попробуйте использовать предварительно сохранить крюк на модели:

yourModel.pre('save', function(next) { 
    this.link = "[http://www.stackoverflow.com/ask?id=][1]" + this._id; 
    next(); 
} 

Я не совсем уверен, что если вы пытаетесь просто генерировать ссылку подобным образом каждый раз, или если пользователь также должны иметь возможность добавить свою собственную ссылку. Если позже, вам нужно будет проверить, была ли ссылка заполнена в кэше предварительного сохранения.

Я надеюсь, что это поможет и жаль, что потребовалось столько времени, чтобы получить ответ на это!