Pour créer un éditeur, il suffit de faire :
HTML :
<textarea id="code1"></textarea>
<textarea id="code2"></textarea>
JS :
var editor1 = ace.edit('code1');
var editor2 = ace.edit('code2');
editor1.getSession().setValue("this text will be in the first editor");
editor2.getSession().setValue("and this in the second");
CSS :
#code1, code2 {
position: absolute;
width: 400px;
height: 50px;
}
Ils doivent être positionnés et dimensionnés de manière explicite. Par show() et hide(), je pense que vous faites référence aux fonctions jQuery. Je ne sais pas exactement comment elles procèdent, mais elles ne peuvent pas modifier l'espace qu'elles occupent dans le DOM. Je cache et montre en utilisant :
$('#code1').css('visibility', 'visible');
$('#code2').css('visibility', 'hidden');
Si vous utilisez la propriété css "display", cela ne fonctionnera pas.
Consultez le wiki ici pour savoir comment ajouter des thèmes, des modes, etc... https://github.com/ajaxorg/ace/wiki/Embedding---API
Remarque : il n'est pas nécessaire que ce soit des zones de texte, il peut s'agir de n'importe quel élément que vous souhaitez.
1 votes
Ce type a une solution plutôt géniale : gist.github.com/duncansmart/5267653