【发布时间】:2018-07-12 18:49:09
【问题描述】:
我的任务是创建一个动态表单系统。我们正在使用另一个 CRM 类型的平台,它有一个 API,可以通过 API 获取带有字段的表单。
我已按照 apostrophe-pieces-submit-widgets 教程执行此操作,但遇到了一些问题。
我正在将其他平台的字段转换为正确的架构字段,这没有问题。应用重启后的第一次加载是好的。我将来自其他平台的字段保存在 aposCache 集合中,以便更快地加载它们。这很好用。
问题 1)
当字段(表单)在另一个平台中更新时,该平台会发送一个 web 挂钩调用,我已在小部件内部的路由中配置了该调用,然后对片段模块进行内部撇号调用,该模块重新缓存并重新- 通过清空options.addFields 来生成字段。
通过调试,我似乎一切正常,但我正在努力让这个新架构完全应用于下一次加载,而无需重新加载应用程序。正如我所提到的,我的初始加载工作正常(包括将数据发布回 CRM),但也在 beforeConstruct 和 construct 中进行操作。我对小部件的内部调用发生在construct 中的一个函数上。我在想这是关于 self.load 等的,但我真的坚持做这项工作。
问题 2)
功能列表的一部分是,一旦填写了表格,然后我想使用apostrophe-email 向网站所有者和填写表格的人发送电子邮件,这与里面的模板配合得很好块模块的afterInsert。
但我希望它更加动态,并且可以由站点管理员(非开发人员)控制。为此,我在小部件中添加了各种字段,站点管理员可以填写这些字段,然后根据自己的喜好修改邮件。问题是,邮件是在piece 模块的afterInsert 部分发送的,并且该模块似乎不知道我在提交它的小部件的字段内有什么内容。有什么方法可以从afterInsert 中加载它?
问题 3)
CRM 平台有“应用程序”。这是带有字段的表单,可以是 Web 表单,这些表单可以通过 API 加载。这个想法是,在一个站点上,您可以拥有 2-3 个或 10 个具有不同字段的表单,连接到 CRM 平台中的不同应用程序。
这个想法是站点管理员可以将两个凭据从 CRM 平台复制/粘贴到小部件中,使用这两个凭据,Apostrophe 将获取字段并生成表单,并在用户提交数据时发回该应用程序.这意味着我需要能够拥有多个动态模式,而不需要超过我的两个(或者如果需要更多)模块来运行它,即片段模块和片段小部件模块。现在在我看来,我目前的方法是一个站点,一个表单。添加多个小部件,将覆盖所有其余部分。由于我被困在其他部分,我已经推迟了对此的担心,但这可能是不可能的,如果没有开发人员在网站上创建另一个片段和/或小部件模块,扩展基本模块,但是会带走 this 中的动态,并需要开发时间在网站上添加新表单,这是我们希望避免的。
感谢有关我面临的上述任一或所有挑战的任何提示,并再次感谢您提供的出色平台!
【问题讨论】:
标签: apostrophe-cms