2017-02-10 15 views
0

我在ckeditor下創建了一個新的插件,其中包含一個選擇框,並且我想用來自json文件的數據完成其選項。 這就是我的Json包含:從Json文件中檢索數據以完成ckeditor中的選擇框

{"services":[ 
{"linkUrl":"localhost:8080/mySite/contents/service1"},{"linkUrl":"localhost:8080/mySite/contents/service2"},{"linkUrl":"localhost:8080/mySite/contents/service3"},{"linkUrl":"localhost:8080/mySite/contents/service4"} 
]} 

這是我開發的代碼:

{ 
    type: 'select', 
    id: 'services', 
    label: 'Services', 
    items: [''], 
    onLoad: function() { 
     (function($) { 
      $.ajax({ 
       url: "/modules/design/files/services.json", 
       dataType: 'json', 

       success: function(data) { 
        $('#services').each(function(key,val) { 
         if (key == "linkUrl") { 
          $('#services').append('<option value="'+ key + '">' + val + '</option>'); 
         } 
        }); 
       } 
      }); 
     })(jQuery); 
    },         

    commit : function(data) 
    { 
     data.services = this.getValue(); 
    } 
}, 

執行我的代碼的選擇框仍然是空後。

+1

你確定數據在成功函數 – Shubhranshu

+0

你好Shubhranshu來了,請原諒我不熟悉這個語法,但是這是我在網上查到。有這樣幾個例子:http://s1.ckeditor.com/sites/default/files/uploads/plugin_5.txt – naben

回答

0

你只是有一些語法問題,但想法是正確的,這段代碼工作正常。

{ 
    type: 'select', 
    id: 'services', 
    label: 'services', 
    items: [''], 
    onLoad: function() { 
     (function($) { 
      $.ajax({ 
       url: "/modules/design/files/services.json", 
       dataType: 'json', 
       success: function(data) { console.log("data.services.length " + data.services.length); 
        for(i = 0 ; i < data.services.length ; i++){ 
         curservice = data.services[i]; 
         $('.cke_dialog_ui_input_select').append($('<option>').text(curservice.name).attr('value', curservice.key)); 
        } 
       } 
      }); 
    })(jQuery); 
}, 
+0

謝謝你的作品! – naben