在模板中获取小部件选项

时间:2018-06-22 19:02:19

标签: javascript node.js nunjucks apostrophe-cms

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

那么,如何将options对象之类的JavaScript变量传递给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', {}) }}
[...]

1 个答案:

答案 0 :(得分:1)

从模板中,您可以像这样进入小部件的根选项配置

{{ 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: [...]        
};