撇号中的动态选择字段

时间:2019-06-12 10:36:46

标签: apostrophe-cms

我刚刚学习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个选项的选择框:伦敦,爱丁堡,曼彻斯特。 实际结果,带有多个空选项的“空”选择框。

控制台中的堆栈跟踪。

  • TypeError:self.apos.modules [field.moduleName] field.choices.then不是函数
  • 在self.routes.choices(/app/node_modules/apostrophe/lib/modules/apostrophe-schemas/lib/routes.js:72:68)

0 个答案:

没有答案