2017-05-02 4 views
0

私はTinyMCEを使用しており、APIを介してテンプレートを動的に読み込もうとしています。しかし、基本的なリターンでも、テンプレートはロードされません(テンプレートリストを変数に設定するなど)。それらは外部JSONファイル(ハードコード)から読み込みます。私の質問は次のとおりです。カスタムTinyMCEテンプレートを返す方法やレンダリングする方法は?例えばテンプレートを返すTinMCE(変数またはAPIに割り当てられました)

これはハードコーディングされたテンプレートを持っているので、それが動作:

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 
       }); 

      }); 

答えて

1

テンプレートオプションは、(Stringなど)テンプレートのArrayまたはURLのいずれかを期待している - それが動作しませんので、あなたはそれを機能を送っています。

マニュアルに従って

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

...

「このオプションは、文字列である場合、 オプションが受け入れ同じ形式でJSON出力を生成する必要があることをURLとして要求されます"

...だから私はあなたのサーバ側のコードを更新し、エディタが期待しているものを返すようにして、そのURLをTinyMCE設定に渡すだけです。

+0

私はURLを直接試しましたが、あなたが正しいと思われます - 私はその部分のコードを変更する必要があります。しかし、Ajax関数を使用してテンプレートを生成する配列を返すことはできませんか? – Hybride

+0

(Ran out of time)編集:たとえば、APIには「title」ではなく「Name」というフィールドがあります。私は "タイトル"に "名前"を割り当て、それを返すことでテンプレートを入力できるようにしたかったのです。 – Hybride

+0

TinyMCE設定ではいつでも変数を使用できます。必要なときに変数に適切な内容が含まれていることを確認します。私はあなたがTinyMCEを初期化しようとする前にデータが存在していることを確認しています。 –

関連する問題