Я пытался создать простой универсальный многоразовый текстовый виджет в apostrophe-cms, поэтому я создал модуль text-only-widgets
.
со следующим кодом
В lib / modules / text-only-widgets / index.js
module.exports = {
extend: 'apostrophe-widgets',
label: 'Section Heading',
beforeConstruct: function (self, options) {
console.log('options.addFields : ', options.addFields)
options.addFields = [
{
name: 'sectionHeading',
label: 'Section Heading',
type: 'string'
}
].concat(options.addFields || [])
}
};
В lib / modules / text-only-widgets / views / widget.html
{{ data.widget.sectionHeading }}
Теперь я попытался использовать вышеуказанный виджет на одной из моих страниц, как показано ниже:
<div>
{{
apos.area(data.page, 'aboutUsDescriptionTwo', {
widgets: {
'text-only': {
addFields: [
{
name: 'sectionDescription', // set these fields dynamically
label: 'Section Description', // set these fields dynamically
type: 'string'
}
]
}
}
})
}}
</div>
Как показано на рисунке ниже, обратите внимание, что даже после передачи addFields с меткой как Раздел Описание в виджет только для текста не переопределяет значения по умолчанию, заданные в index.js.
Я попытался console.log на файле options.addFields в index.js, но он регистрирует неопределенное значение, как показано ниже, я также попробовал несколько разных вариантов, но ни один не работает.