我刚刚学习Apostrophe CMS,但对如何动态填写选择字段感到有些困惑。我已经尝试了ApostropheCMS文档的建议,但是在他们的网站上没有任何示例。
Apostrohpe CMS建议:首先,将options选项设置为模块中方法的名称。传递字符串,即方法的名称-不传递函数。 第二,实现该函数以采用单个(req)参数并以通常的格式返回选择数组。您可以使用异步函数,或返回将解析到数组的Promise。
我已经以许多不同的方式完成了此操作,但是它没有用。我试过调用self.testchoice,testchoice,我试过调用var testchoice和self.testchoice函数。
我的代码是对最终API调用的模拟,并从我正在创建的整个撇号中删除。
module.exports = {
name: 'testtype',
addFields: [
{
name: 'test_dynamic_select',
type: 'select',
choices: 'testchoice'
}
],
construct: function(self, options) {
self.testchoice = function(req) {
var testarray = [
{
label: 'London',
value: 'london'
},
{
label: 'Edinburgh',
value: 'edinburgh'
},
{
label: 'Manchester',
value: 'manchester'
}
];
return testarray;
}
}
}
期望带有3个选项的选择框:伦敦,爱丁堡,曼彻斯特。 实际结果,带有多个空选项的“空”选择框。
控制台中的堆栈跟踪。