0

ajax呼び出しで返されたデータとその他のコードを1つの関数に入れようとしています。

これは、カスタム fckeditor プラグイン用です。

私は次のようなものを持っています

  function customTag(editor){

      var id = editor.config.id;
      var instance = this;

      //my custom ajax wrapper…….
      //the 'dbData' is holding the returned data from ajax.
      ajax.onFinished = function(dbData){ console.log(dbData)};

  //I want to return this object and use my ajax returned data
   return {
          title:'Link',
          minWidth : 200,
          minHeight : 200,
          buttons : [CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton],
          contents: [
              {
                  id:'tab',
                  label: 'test here',
                  elements: [                          
                      {
                      type:'select',
                      id:'select box',
                      //I want to use the returned data below
                      items: [[dbData[0],0],[dbData[1],0] ]
                      }
                  ]
              }
          ]
      }
  }

  CKEDITOR.dialog.add('customTag', function(editor){
      return customTag(editor);
  });

どうすればこれを解決できるでしょうか。どうもありがとう!

4

1 に答える 1

1

CKEDITOR.dialog.add()内で行うajax.onFinished。そこで、戻りオブジェクトを作成し、CKEditor に直接使用します。それか、同期操作を使用します。このようなもの:

ajax.onFinished = function(dbData){
    var o = {
        title:'Link',
        minWidth : 200,
        minHeight : 200,
        buttons : [CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton],
        contents: [
            {
                id:'tab',
                label: 'test here',
                elements: [                          
                    {
                        type:'select',
                        id:'select box',
                        items: [[dbData[0],0],[dbData[1],0] ] // Use dbData
                    }
                ]
            }
        ]
    };

    CKEDITOR.dialog.add('customTag', function(editor){
        return o;
    });
};

初期化後のCKE の呼び出しに問題がある場合はdialog.add、内部でも初期化しajax.onFinishedます。

于 2013-11-13T07:28:33.367 に答える