2012-01-03 15 views
12

Sto riscontrando problemi nel tentativo di caricare ckeditor tramite requirejs (ho provato a convertire il file cs del principale ckeditor in singoli moduli ma ciò ha appena causato l'inferno a scatenarsi) e così sono ora controllo per vedere se c'è un modo molto semplice per fare questo che ho perso.Come caricare ckeditor via requirejs

So require requirejs consente di caricare normali script js, quindi forse è sufficiente caricare il file ckeditor.js (non modificato, quindi è ancora un IIFE/funzione autoeseguibile) - funzionerebbe con requirejs o se si usando requirejs per caricare i moduli, l'intero progetto deve quindi essere basato sui moduli?

Qualsiasi aiuto apprezzato.

Cordiali saluti, Mark

risposta

-2

OK, sembra ho risposto alla mia domanda proprio qui.

Invece di cercare di rompere il ckeditor in moduli ho appena usato RequireJs per caricare lo script nella sua interezza.

require(['require', 'dependancy-A', 'dependancy-B', 'dependancy-C'], function(require, A, B, C){ 

    // this = [object DOMWindow] 
    // CKEDITOR_BASEPATH is a global variable 
    this.CKEDITOR_BASEPATH = '/ckeditor/'; 

    require(['/ckeditor/ckeditor'], function(){ 
     // Code to create a new editor instance 
    }); 

}); 

`` `

+7

Questo metodo non elenca CKEditor in dipendenza del modulo, e non utilizza RequireJS caricare CKEditor sia, invece ricadendo (una coppia di) tag JavaScript caricare CkEditor. Ciò significa che CKEditor non può essere caricato quando viene eseguito questo modulo. –

26

In alternativa, è possibile creare uno spessore RequireJS per caricare le cose nell'ordine corretto, e alias RequireJS nomi propri moduli per i file di distribuzione CKEditor.

Ciò significa che il modulo dichiara ancora che dipende da CKEditor, che è molto più bello di averlo appena mostrato per magia.

require.config({ 
shim: { 
    'ckeditor-jquery':{ 
     deps:['jquery','ckeditor-core'] 
    } 
}, 
paths: { 
    "jquery": '/javascript/jquery-1.7.1/jquery.min', 
    'ckeditor-core':'/javascript/ckeditor-3.6.4/ckeditor', 
    'ckeditor-jquery':'/javascript/ckeditor-3.6.4/adapters/jquery' 
} 
}); 

poi in un modulo si può dipendere da CKEditor-jQuery (o ckeditor-core per questo, se non è necessario l'integrazione jQuery) e so che sarà disponibile:

require(
[ 
    "jquery", 
    "ckeditor-jquery" 
], 
function(_jquery_) { 

    $('#editorContent2').ckeditor({ 
     customConfig : '', 
     skin:'office2003' 
    }); 
} 
} 
+0

Grazie, ha funzionato perfettamente. Sapevo che la risposta sarebbe stata di tagliarlo, ma ero troppo pigro per pensare a come farlo correttamente. Per fortuna, non ho dovuto. –

+0

ancora non funziona per me ... Ottengo errore dicendo che i percorsi delle dipendenze sono sbagliati. qualche altra informazione utile che voi ragazzi potete darmi? grazie – w3jimmy

+0

@ Tom Chiverton, come si fa a caricare il css? –

1

un altro modo per farlo:

var require = { 
    "shim": { 
     "path/foo/ckeditor/ckeditor": { "exports": "CKEDITOR" } 
    } 
}; 

define(['moduleX', 'path/foo/ckeditor/ckeditor'], function (x, ckeditor) { 

    ckeditor.editor.prototype.fooFunc = function() { 

    }; 
}); 
Problemi correlati