- PVSM.RU - https://www.pvsm.ru -
![Одностраничная IDE в браузере [AngularJS Ace] Одностраничная IDE в браузере [AngularJS Ace]](http://www.pvsm.ru/images/2014/07/22/odnostranichnaya-IDE-v-brauzere-AngularJS-Ace.png)
Про редактор Ace, думаю знают все, а сегодня у нас возникла срочная необходимость прикрутить редактор кода с подсветкой синтаксиса к проекту на AngularJS, наткнулся на этот пост — действительно быстро привязал к проекту. Подумал будет полезно многим новичкам — решил перевести, благо короткий. Заодно добавил пример в jsfiddle.
Перевод:
Иногда ты сталкиваешься с технологией которая заставит остановиться и задуматься о том как далеко продвинулась веб разработка в последние несколько лет. Для меня одной из таких технологий стал проект Ace. Если Вы незнакомы с ним, Асе, это «высокопроизводительный редактор кода для веба». Он позволяет Вам создавать сайты позволяющие пользователю писать код непосредсвенно в их браузере. LearnAngular [1] широко использует Ace.
В этом посте мы рассмотрим как интегрировать редактор Ace в приложение AngularJS с помощью модуля от AngularUI.
Первое, что мы должны сделать, это получить три необходимые для задачи библиотеки:
bower install angular
bower install ace
bower install angular-ui-ace#bower
После сделайте ссылки на эти библиотеки в Вашем приложении следующем порядке:
<div class="editor" ui-ace="{ mode: 'javascript', theme: 'monokai' }" ng-model="code"></div>
Верите или нет, это весь HTML который необходимый Вам для интеграции Ace в Ваш сайт. Давайте быстро просмотрим, что мы сделали.
Класс editor просто объявляется, для того чтобы мы могли сконфигурировать размер редактора используя чуток CSS, как — мы вскоре увидим.
Дериктива ui-ace преобразует наш div в редактор Ace. Здесь мы передаем ему параметры, чтобы задать язык программирования и тему. Ace поддерживает тонну языков [8] и имеет довольно много тем [9]. Лучше потратить немного времени на их изучение для получения полноценного представления о том на сколько действительно проект Ace полнофункционален.
В заключении мы добавляем вездесущую дериктиву ng-model так что все, что пользователь набирает в редакторе кода связано с нашей областью Angular $scope.
Очевидно, что мы можем также это использовать для того чтобы редактор по умолчанию отображал какой нибудь текст.
angular.module("app", ['ui.ace'])
.controller("controller", ["$scope", function($scope) {
$scope.code = "alert('hello world');";
}]);
CSS, который мы собираемся применить к редактору необходим, для задания ему размера и положение на нашей странице. Как уже упоминалось ранее, фактический вид редактора определяется темой.
.editor {
height: 200px;
}
(прим. пер. без этого маленького участка кода редактор вообще не отобразиться — нет высоты по умолчанию)
Вот и все, что нужно делать! Просто несколько строк кода и мы интегрировали чрезвычайно богатый редактор кода в веб-страницу, и можно продолжать и делать все, что мы хотели бы с кодом который пишут наши пользователи. Моё мнение — очень круто!
От себя — попробовал, понравилось и добавил ещё ссылку на один редактор оформленные как директива для AngularJS
Автор: login4all
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/veb-razrabotka/65647
Ссылки в тексте:
[1] LearnAngular : http://www.learn-angular.org/
[2] angularjs.org: https://angularjs.org/
[3] Google Hosted Libraries: https://developers.google.com/speed/libraries/devguide#angularjs
[4] cdnjs: http://cdnjs.com/libraries/angular.js
[5] ace.c9.io: http://ace.c9.io/
[6] cdnjs: http://cdnjs.com/libraries/ace
[7] GitHub: https://github.com/angular-ui/ui-ace
[8] тонну языков: https://github.com/ajaxorg/ace/tree/master/lib/ace/mode
[9] довольно много тем: https://github.com/ajaxorg/ace/tree/master/lib/ace/theme
[10] jsfiddle: http://jsfiddle.net/login4all/2aMk2/1/
[11] textAngular: https://github.com/fraywing/textAngular
[12] Источник: http://habrahabr.ru/post/230749/
Нажмите здесь для печати.