J'aimerais pouvoir convertir des zones de texte spécifiques sur une page en éditeurs ACE.
Quelqu'un at-il des conseils s'il vous plaît?
ÉDITER:
J'ai le fichier editor.html fonctionnant avec une zone de texte, mais dès que j'ajoute une seconde, la seconde n'est pas convertie en éditeur.
MODIFIER 2:
J'ai décidé d'abandonner l'idée d'en avoir plusieurs et d'en ouvrir une dans une nouvelle fenêtre. Ma nouvelle situation est que lorsque je cache () et montre () la zone de texte, l'affichage tourne mal. Des idées?
Réponses:
Autant que j'ai compris l'idée d'Ace, vous ne devriez pas faire d'une zone de texte un éditeur Ace lui-même. Vous devez créer un div supplémentaire et mettre à jour textarea en utilisant .getSession () place.
html
js
ou juste appeler
uniquement lorsque vous soumettez le formulaire avec la zone de texte donnée. Je ne sais pas si c'est la bonne façon d'utiliser Ace, mais c'est la façon dont il est utilisé sur GitHub .
la source
'SELECT 1OR&nbps;2;'
à textarea. Quelqu'un peut-il me dire ce que je fais mal?Duncansmart a une solution assez géniale sur sa page github, progressive-ace qui montre un moyen simple de connecter un éditeur ACE à votre page.
Fondamentalement, nous obtenons tous les
<textarea>
éléments avec l'data-editor
attribut et les convertissons chacun en éditeur ACE. L'exemple définit également certaines propriétés que vous devez personnaliser à votre guise et montre comment vous pouvez utiliser desdata
attributs pour définir des propriétés par élément, comme afficher et masquer la gouttièredata-gutter
.la source
Vous pouvez avoir plusieurs éditeurs Ace. Donnez simplement à chaque zone de texte un identifiant et créez un éditeur Ace pour les deux IDS comme ceci:
la source
Pour créer un éditeur, faites simplement:
HTML:
JS:
CSS:
Ils doivent être explicitement positionnés et dimensionnés. Par show () et hide (), je crois que vous faites référence aux fonctions jQuery. Je ne sais pas exactement comment ils le font, mais cela ne peut pas modifier l'espace qu'il prend dans le DOM. Je cache et montre en utilisant:
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: ils ne doivent pas nécessairement être des zones de texte, ils peuvent être l'élément de votre choix.
la source
ace.edit('code1')
vous obtenez des déchets comme:<textarea class="ace_editor ace-twilight ace_focus"><div class="ace_gutter">...</textarea>
En d'autres termes, ace.edit essaie de se bourrer dans textarea et ce n'est pas très agréable.Pour tous ceux comme moi qui veulent juste un exemple minimal et fonctionnel d'utilisation d'Ace à partir du CDN:
la source