在模板中获取小部件选项

Get widget options in template

我知道可以为 index.js 添加别名,但这是 not recommended for NPM modules

那么,如何将 JavaScript 变量(例如 options 对象)传递给 Nunjucks 模板?

data.widget只包含一个idtypeeditable。奇怪的是,它不包含 label.

index.js

module.exports = {
  extend: 'apostrophe-widgets',
  label: 'Privacy Cookie Widget',

  [...]
}

widget.html

<div class="[...]-widget">
  [...]

  {{ data.widget.label }} <!-- Nothing. -->

  [...]
</div>

home.html

[...]
{{ apos.singleton(data.[global|page], 'widgetName', 'widget-name', {}) }}
[...]

从模板中,您可以像这样获取小部件根选项配置

{{ apos.log(apos.modules['my-cool-widgets'].options.coolStuff) }}

其中 coolStuff 定义在 my-cool-widgets/index.js

module.exports = {        
  extend: 'apostrophe-widgets',        
  label: 'Cool Widg',
  coolStuff: {
    array: [1,2,3,4],
    hello: 'boom boom',
    hehe: true
  },
  addFields: [...]        
};