在某些情况下,我无法对富文本进行内联编辑保存回数据库。
请耐心等待,这里会粘贴一些代码,因为这是我描述我所做的唯一方式。
我的项目中有两种自定义小部件 - 那些只有一个小部件实例的小部件,通常在lib\modules
目录中定义如下:
article-widgets
- views
- - widget.html
- index.js
然后是那种重复的小部件,可以在网站周围的几个地方使用,通常定义如下:
employees
- index.js
employees-widgets
- views
- - widget.html
这个我可以开展工作:
在第一种情况下,我在article-widgets\index.js
{
name: 'ingress',
label: 'Ingress',
type: 'area',
required: true,
options: {
widgets: {
'apostrophe-rich-text': {
toolbar: ['Bold', 'Italic', 'Link', 'Unlink' ]
}
}
}
}
然后在article-widgets\views\widget.html
{{ apos.singleton(data.widget, 'ingress', 'apostrophe-rich-text',{
toolbar: [ 'Bold', 'Italic', 'Link', 'Unlink' ]
}) }}
这个不适合我:
在第二种类型中 - 我可以编辑内联,但不保存更改。
在employees\index.js
{
name: 'body',
label: 'Beskrivelse',
type: 'area',
options: {
widgets: {
'apostrophe-rich-text': {
toolbar: ['Bold', 'Italic', 'Link', 'Unlink']
}
}
}
}
然后在employees-widgets\views\widget.html
{% for piece in data.widget._pieces %}
<div>
{{
apos.singleton(piece, 'body', 'apostrophe-rich-text', {
toolbar: [ 'Bold', 'Italic', 'Link', 'Unlink' ]
})
}}
</div>
{% endfor %}
我无法理解为什么后者不起作用。我做错了什么 - 或者是不可能重复项目的内联编辑?
答案 0 :(得分:0)
Apostrophe的一个微妙之处在于任何以下划线(_)开头的属性(除了_id )实际上并不是父对象的一部分而且更改不会发生回到数据库
这些属性是为了方便Apostrophe在检索过程中的某个地方附加的。
我认为修改窗口小部件中的部分是默认情况下的内容(通常是部分窗口小部件是内容的单个服务视图)但是可以设置自定义后端功能。
不是问题的总计1:1,但是如果您查看此(粗略)示例中的comments
和comments-widgets
模块,您可以看到我们正在通过窗口小部件修改该部分的内容
https://github.com/stuartromanek/apostrophe-comment-system/tree/master/lib/modules