2013-07-13 1 views
1

J'ai un éditeur DOJO que j'ajouter à JS en utilisant la méthode createEditorgrabing Dojo Objet original donné Dom Id

require(["dijit/Editor"], 
       function(Editor){ 
        this.createEditor = function(idToReplace){ 
         var myEditorA = new Editor({ 
          height: '50px', 
          plugins:['bold','italic'] 
         }, document.getElementById(idToReplace)); 
         myEditorA.startup(); 
        } 
       }); 

J'ai besoin du texte dans l'éditeur après qu'il a été modifié.

J'ai connecté la méthode getEditorText mais elle ne fonctionne pas comme je le souhaite.

require(["dijit/Editor"], "dojo/dom", 
    function(Editor, dom){ 
     this.getEditorText = function(idofEditor){ 
     //Editor myEditor =Editor(null, dom.byId(idofEditor)); does not work either 

        var myEditor = dom.byId(idofEditor); 
        var content = myEditor.get("value"); 
      }); 

La valeur dont j'ai besoin est stockée dans l'attribut "valeur" dans l'éditeur.

Si je stocke myEditorA dans une variable globale que je peux obtenir le contenu mais je dois la syntaxe correcte pour éviter de travailler avec des variables globales inutiles

Répondre

3

Dans widgets Dojo (dijit) et des noeuds DOM sont traités séparément. Pour les nœuds DOM, vous devez utiliser le module dojo/dom et la fonction byId(). Pour les widgets cependant, vous avez besoin du module dijit/registry et vous pouvez obtenir le widget par son nœud DOM comme ceci:

require(["dijit/registry", "dojo/dom"], function(registry, dom) { 
    var myEditor = registry.byNode(dom.byId(idofEditor)); 
}); 

Mais parce que le registre permet aussi d'économiser votre éditeur avec le même ID que votre nœud DOM, vous pouvez aussi accéder directement (sans utiliser le nœud DOM) comme ceci:

require(["dijit/registry"], function(registry) { 
    var myEditor = registry.byId(idofEditor); 
}); 

J'ai fait un exemple jsFiddle que vous pouvez trouver here.

+0

dijit/registre est exactement ce que je cherchais –

Questions connexes