【问题标题】:TinMCE returning templates (assigned to variable or from API)TinyMCE 返回模板(分配给变量或来自 API)
【发布时间】:2017-05-02 15:06:55
【问题描述】:

我正在使用 TinyMCE,并尝试通过 API 动态加载模板。但是,即使使用基本返回,也不会加载模板(例如将模板列表设置为变量)。它们确实从外部 JSON 文件(硬编码)加载。那么我的问题是:如何返回或呈现自定义 TinyMCE 模板?

例如:

这有硬编码的模板,所以它可以工作:

 templates: "/Content/data/templates.json"

但我正在努力实现(在基本层面上):

templates:
 function () {
   var test = 
        { title: 'Test template 1', content: 'Test 1' };

       return tinymce.util.JSON.parse(test); // doesn't work
      //return JSON.stringify(templates); // doesn't work
    },

按原比例(代码不完整):

templates: 
    function () {
            $.getJSON('/Template', function (result) {
              var data = {};
              $.each(result.ResponseObject, function (index, value) {
                data.title = value.Name;
                data.description = value.Name;
                data.content = value.Description;
                 // can't figure out how to return variable 
              });

            });

【问题讨论】:

    标签: templates tinymce tinymce-4 tinymce-plugins


    【解决方案1】:

    模板选项期望模板的ArrayURL(作为String) - 您正在向它发送一个函数,因此它不起作用。

    https://www.tinymce.com/docs/plugins/template/#templates

    根据文档...

    "如果这个选项是一个字符串,那么它将作为一个 URL 被请求 应该以选项​​接受的相同格式生成 JSON 输出。”

    ...所以我会更新您的服务器端代码以返回编辑器期望的内容,并在 TinyMCE 配置中传递该 URL。

    【讨论】:

    • 我直接尝试了 URL,看来您是正确的 - 我必须更改那部分的代码。但是不能返回一个带有 Ajax 函数的数组来填充模板吗?
    • (超时)编辑:例如,API 有一个名为“名称”的字段,而不是“标题”。我想将“名称”分配给“标题”并将其返回,以便它可以填充模板。
    • 您始终可以在 TinyMCE 配置中使用变量,并在需要时确保该变量具有正确的内容 - 是的。在您尝试初始化 TinyMCE 之前,我仍然会确保数据存在,因为它不希望数据在初始化后到达。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2017-09-23
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    相关资源
    最近更新 更多