2017-05-02 10 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

템플릿 옵션은 템플릿이 Array이거나 URL (예 : String)이므로 예상대로 작동하지 않는 함수를 보내고 있습니다. 문서 당

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

...이 옵션 다음은 이 같은 형식으로 JSON 출력을 생성해야하는 URL로 요청됩니다 문자열 인 경우

는 "옵션이 허용 . "

... 그래서 편집자가 예상 한 것을 반환하고 단지 TinyMCE 구성에서 해당 URL을 전달하도록 서버 측 코드를 업데이트합니다.

+0

URL을 직접 시도했는데 정확하다고 생각됩니다. 해당 부분의 코드를 변경해야합니다. 그러나 템플릿을 채우기 위해 Ajax 함수를 가진 배열을 리턴하는 것은 불가능합니까? – Hybride

+0

(Ran out of time) 편집 : 예를 들어, API에는 "title"대신 "Name"이라는 필드가 있습니다. "제목"에 "이름"을 지정하고 템플릿을 채울 수 있도록 반환했습니다. – Hybride

+0

TinyMCE 구성에서 항상 변수를 사용할 수 있으며 필요할 때 변수에 적절한 내용이 있는지 확인하십시오. 당신이 TinyMCE를 초기화하려고 시도하기 전에 데이터가 존재 하는지를 확신 할 것입니다. –