2016-10-26 6 views
1

В моем Angular 2 (построен с угловым cli) Я пытаюсь связать редактор Ace с моей настраиваемой темой, которая будет размещена в папке с ресурсами моего приложения src/app/assets, а не похоронен в node_modules.Связывание туза с пользовательской темой вне каталога темы по умолчанию в приложении Angular 2

В angular-cli.json у меня есть:

"scripts": [ 
    "../node_modules/ace-builds/src-min/ace.js", 
    "./assets/my-theme.js" 
], 

Но консоль DevTools выплевывает 404 у меня: GET http://localhost:4200/theme-my-theme.js

Я не могу найти хороший способ для ссылки на нее. Ошибка остается той же, что и запрос на localhost: 4200, изменяя только имя файла, которое я пытаюсь получить.

Я думаю, что мне не хватает важной информации об основных дорожках.

+0

как вы настраиваете тему темы туза? –

+0

Первоначально я использовал '[theme] =" 'clouds' "', но я понял, что этого может не хватать для пользовательских мест тем, поэтому я перешел к 'this.editor.setTheme ('cloud')', а затем попытался с различными пути. – user776686

ответ

0

Если туз не знает тему (или режим), то он будет пытаться загрузить или «GET» файл локально с вашего веб-сервера, поэтому вы получаете этот запрос: GET http://localhost:4200/theme-my-theme.js

Хитрость есть, вам нужно зарегистрировать свою тему с Ace. Посмотрите, как работают темы Ace. Например, тема-monokai.js начинается с этой строки:

define("ace/theme/monokai",["require","exports","module","ace/lib/dom"], function(require, exports, module) { 

Эта строка определяет тему под названием «monokai».

+0

Спасибо за ваш вклад. Вы знаете, как это сделать в TypeScript/Webpack? Я думаю, что стиль AMD не будет работать, не так ли? – user776686

+0

Вы правы, а не AMD. Библиотека [ng2-ace-editor] (https://github.com/fxmontigny/ng2-ace-editor) объединяет Ace с Angular2. Я использовал его, и он работает. Чтобы использовать эту библиотеку, следуйте комментариям в README, особенно комментарии о том, как использовать тему «eclipse» в качестве примера. –