从虚拟字段或另一个字段的值生成URL

时间:2016-10-14 11:48:35

标签: keystonejs

我想在keystoneJS的列表中生成一个Url。我更喜欢将网址存储在mongo中。

尝试:

  • 虚拟字段:有效,但不会为href生成原始HTML。
  • Types.Url:我得到了href格式,但是我需要来自模型中另一个字段的值,所以它生成了未定义的url ..例如:
{ type: Types.Url, label: "Link", default: "[http://www.stackoverflow.com/ask?id=][1]" + this._id }

如何解决这个问题的任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

对于您的第二点,在向模型添加字段时,this._id不可用,因此您获得undefined的原因。

相反,请尝试在模型上使用预保存挂钩:

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

我不确定您是否每次都尝试以这种方式生成链接,或者用户是否也应该能够添加自己的链接。如果是后者,您需要检查链接是否已在预保存挂钩中填写。

我希望帮助和抱歉花了这么长时间才得到答案!