Не удается получить подсветку синтаксиса HTML Codemirror для работы в приложении Angular 2
Попытка заставить HTML-подсветку CodeMirror работать (что, как я вижу, было проблемой и для некоторых людей) в моем приложении angular-cli (Angular 2).
Вот что у меня есть:
Приложение.деталь.html
<codemirror [(ngModel)]="code" [config]="config"></codemirror>
<div [innerHTML]="code"></div>
Приложение.деталь.ts
export class AppComponent {
code = `<p>My HTML</p>n<!-- hello -->n<p>Your HTML</p>`;
config = {
mode: 'htmlmixed',
lineWrapping: false,
lineNumbers: true,
theme: 'monokai'
};
}
Угловой-кли.json (перечисление только соответствующего раздела)
"addons": [
"../node_modules/codemirror/mode/xml/xml.js",
"../node_modules/codemirror/mode/javascript/javascript.js",
"../node_modules/codemirror/mode/htmlmixed/htmlmixed.js"
],
/... /
"styles": [
"../node_modules/codemirror/lib/codemirror.css",
"../node_modules/codemirror/theme/monokai.css"
],
Приложение.модуль.ts
imports: [
/* ... */
CodemirrorModule,
],
Я пытался различные синтаксические шаблоны, передающие режим в виде объекта или строки, и - как вы видите-убедившись, что xml загружается первым. Не ходите-изюминки там нет. Я всегда следил за перезагрузкой ng serve
после каждого редактирования angular-cli.формат JSON.
1 ответ:
Вам нужно добавить
<script src="node_modules/codemirror/lib/codemirror.js"></script>
вindex.html
и импортироватьmode
, который вы хотите использовать в своем компоненте:import 'codemirror/mode/htmlmixed/htmlmixed'; <-- this export class AppComponent { code = `<p>My HTML</p>\n<!-- hello -->\n<p>Your HTML</p>`; config = { mode: 'htmlmixed', lineWrapping: false, lineNumbers: true, theme: 'monokai' }; }