8
這是我的模型代碼:'Info'及其創建問題的令牌屬性。如何使用Keystone.js添加Array類型的虛擬屬性?
var keystone = require('keystone'),
Types = keystone.Field.Types;
var Info = new keystone.List('Info');
Info.add({
title: { type: String, required: true, initial: true },
subtitle: { type: String, initial: true },
content: { type: Types.Markdown, height: 500, initial: true },
author: { type: Types.Relationship, ref: 'User', initial: true },
date: { type: Types.Date, default: Date.now, initial: true },
published: { type: Boolean, default: false, initial: true },
tokens: { type: Array, virtual: true, noedit: true, collapse: true }
});
Info.defaultColumns = 'title, author, date|15%, published|15%'
Info.register();
當運行應用程序,我得到:
Error: Unrecognised field constructor: function Array() { [native code] }
at List.field (/Users/bobmoff/Dropbox (Mobiento)/IMGNRY/Nordea/dev/code/rantebevis-cms/node_modules/keystone/lib/list.js:315:10)
at List.<anonymous> (/Users/bobmoff/Dropbox (Mobiento)/IMGNRY/Nordea/dev/code/rantebevis-cms/node_modules/keystone/lib/list.js:200:16)
at List.<anonymous> (/Users/bobmoff/Dropbox (Mobiento)/IMGNRY/Nordea/dev/code/rantebevis-cms/node_modules/keystone/lib/list.js:191:5)
at List.<anonymous> (/Users/bobmoff/Dropbox (Mobiento)/IMGNRY/Nordea/dev/code/rantebevis-cms/node_modules/keystone/lib/list.js:230:5)
at Function._.each._.forEach (/Users/bobmoff/Dropbox (Mobiento)/IMGNRY/Nordea/dev/code/rantebevis-cms/node_modules/keystone/node_modules/underscore/underscore.js:82:22)
at List.add (/Users/bobmoff/Dropbox (Mobiento)/IMGNRY/Nordea/dev/code/rantebevis-cms/node_modules/keystone/lib/list.js:204:4)
at Object.<anonymous> (/Users/bobmoff/Dropbox (Mobiento)/IMGNRY/Nordea/dev/code/rantebevis-cms/models/infos.js:4:6)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
我試着直接向模式添加令牌標籤,並且工作正常。但是,當我創建一個新的Info項目時,它會在tokens屬性中存儲一個空數組。我只是希望這個屬性在我的API響應中存在。看起來在發送響應時使用動態添加的屬性會被刪除(使用res.send(items);)我不想在getter中進行計算,因爲當它發生時,我幾乎不能控制它。 – bobmoff