【问题标题】:Apostrophe cms - inline editing of rich text in custom widgets?撇号 cms - 自定义小部件中富文本的内联编辑?
【发布时间】:2018-02-03 16:02:52
【问题描述】:

在某些情况下,我无法将富文本的内联编辑保存回数据库。

请多多包涵,这里会粘贴一些代码,因为这是我描述我在做什么的唯一方式。

我的项目中有两种自定义小部件 - 只有一个小部件实例,通常在 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 %}

我不明白为什么后者不起作用。我做错了什么 - 还是无法对重复项进行内联编辑?

【问题讨论】:

    标签: node.js apostrophe-cms


    【解决方案1】:

    Apostrophe 的一个微妙之处在于,任何以下划线 (_) 开头的属性(_id 除外)实际上并不是父对象的一部分,并且不会发生更改返回数据库

    这些是 Apostrophe 在检索过程中为方便起见而附加的属性。

    我不认为从小部件中修改片段是默认内置的(通常片段小部件是内容的单一服务视图),但可以设置自定义后端功能。

    不是您的问题的总比例为 1:1,但如果您查看此(粗略)示例中的 commentscomments-widgets 模块,您可以看到我们正在通过小部件修改文章的内容。

    https://github.com/stuartromanek/apostrophe-comment-system/tree/master/lib/modules

    【讨论】:

    • 实际上,这应该可行——这些片段被加载为带下划线的属性这一事实并不能阻止您内联编辑其中一个区域。请您检查一下您拥有的撇号模块的版本,或者只是使用“npm update”来消除这个可能的问题?最近进行了更改以改进对模式对话框中也存在的字段的内联编辑的处理。
    • 嘿@boutell 感谢您的更正,您能发布一个真正的答案,这样我就可以删除这个假新闻,谢谢
    • 嘿@boutell - 我做了一个 npm 更新,现在我在 Apostrophe 2.33.1 上 - 但是它仍然无法正常工作。
    • 嗯,应该可以的。您能否提供一个指向我们沙盒项目(或可以与我们分享的另一个项目)的分支的链接,以展示问题,以便我可以稍微破解一下?
    • 嗨@boutell - 我创建了一个新的撇号项目并复制了我在项目中使用的员工小部件 - 并将它们添加到 app.js 和 home.html github.com/trondulseth/aph-test 现在尝试在这个新的测试项目中添加员工时,我在尝试添加图像或富文本字段时收到错误消息“您无法控制文档”.....不知道为什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    相关资源
    最近更新 更多