1

是否可以将数据传递到 UI 扩展分配(意味着 UI 扩展 X 分配给字段 Y),以便针对不同情况稍微改变它们的功能,而不必重新实现整个扩展?

例如,CodeMirror 是一个非常简洁的嵌入式编辑器,但它有很多“模式”,具体取决于您使用的语言。如果我们甚至可以在将扩展名分配给字段时传入一个字符串来表示所需的模式,那将不需要为了使用不同的语法突出显示而进行不同的扩展名。

有了这个,现在可以有一个通用的“CodeMirror Editor”UI 扩展,然后只需配置一个运行时。

另一方面,我们可以在将扩展分配给字段时指定整个 JSON 对象,以进一步指定配置选项。

这将使 UI 扩展更加...有用。这个功能现在是否存在,或者有什么方法可以合理地使其工作?字段规范中是否有一些地方可以“停放”一个 JSON 字符串,然后从扩展内部访问它?

4

3 回答 3

2

Contentful 为 UI 扩展推出了一个名为“配置参数”的东西,可以用来解决这个问题。

它们有两种类型的参数,installationinstance参数。安装 UI 扩展时设置安装参数,配置内容类型上的字段以使用扩展时设置实例参数。后者非常适合您的用例。

要使用此功能,您需要:

  1. extension.json在文件中为 UI 扩展创建参数定义。例如,一个名为“codeMirrorSettings”的新实例参数,类型为 Symbol,名称为“CodeMirror Settings”。
  2. 在扩展中,使用extensionsApi.parameters.instance.codeMirrorSettings.

配置参数的文档可以在 Contentful 的文档中找到:

于 2018-06-07T09:28:21.947 回答
1

您可以做的只是从另一个字段读取此设置,无论是字符串还是 json 对象。

例如,slug 生成器自动从标题字段生成其值。

你也许可以做这样的事情:

const cfExt = window.contentfulExtension || window.contentfulWidget


cfExt.init(api => {
    var langField = api.entry.fields.mirrorLang || 'default'
    //Rest of implementation
})
于 2016-10-25T21:10:44.003 回答
1

好吧,我为此写了一些东西,具体到我的情况,但可以推广到其他人。这是一个示例,如果 UI 扩展从空间中的另一个条目检索设置,并使用它来动态配置自身。

https://github.com/deanebarker/contentful-code-editor

于 2016-10-27T11:34:57.447 回答