撇号 - 在表单提交小部件中设置数据

apostrophe - setting data in forms-submit-widgets

我正在尝试制作一个联系表格供人们注册参加活动 — 但问题是,每次有人请求时,都需要从 Google 日历中填写注册表中的日期字段页。 所以在 trainings-forms-submit-widgets 我有:

module.exports = {
  construct: function(self, options) {
    self.pageBeforeSend = function(req) {
      [all the code needed to get the info from the calendar]
    }
  }
}

现在,我在任何地方都找不到它 - 如何用我得到的数据填充 trainings-forms 中的数据字段?我相信构造我需要以某种方式操纵 self 对象,但我找不到关于它的文档。

首先,您的 pageBeforeSend 处理程序必须接受回调,并且在实际准备好之前不得调用该回调。

其次,它必须将信息添加到 req.data 的 属性,以便您的页面模板可以看到它:

self.pageBeforeSend = function(req, callback) {
  // Let's use the request module to fetch a URL
  return request('http://some/api/somewhere', function(err, res, body) {
    if (err || response.statusCode >= 400) {
      return callback(err || response.statusCode);
    }
    // I am guessing how your API works here
    req.data.registerDate = body.registerDate;
    return callback(null);
  });
};

其次,我不知道你的联系表是如何工作的,因为你没有提到。但是,如果您只是简单地输出自己的 HTML 表单,您现在可以轻松地将此数据插入您的页面模板中:

<form method="POST" action="/something">
  <input name="date" value="{{ data.registerDate }}" />
</form>

如果您正在做其他事情,例如使用我们的 apostrophe-pieces-submit-widgets 模块来构建这些表单,请准确说明您在做什么,我可以为您提供有关如何填充该字段的更多信息。