Reputation: 21
I am new in angular. I want to codemirror in my Angular application. I created an Angular application using angular cli. On GitHub I found a Codemirror componente: ngx-codemirror. I followed the instructions as far as described. I have in my root project directory
npm install @ctrl/[email protected] codemirror
executed. My code currently looks like this: app/app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { FormsModule } from '@angular/forms';
import { CodemirrorModule } from '@ctrl/ngx-codemirror';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule, FormsModule, CodemirrorModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app/app.component.ts:
import { Component } from '@angular/core';
const defaults = {
markdown:
'# Heading\n\nSome **bold** and _italic_ text\nBy [Scott Cooper](https://github.com/scttcper)',
'text/typescript':
`const component = {
name: "@ctrl/ngx-codemirror",
author: "Scott Cooper",
repo: "https://github.com/typectrl/ngx-codemirror"
};
const hello: string = 'world';`,
};
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'MyBuilder';
readOnly = false;
mode = 'markdown';
options: any = {
lineNumbers: true,
mode: this.mode,
};
defaults = defaults;
changeMode() {
this.options = {
...this.options,
mode: this.mode,
};
}
handleChange($event) {
console.log('ngModelChange', $event);
}
clear() {
this.defaults[this.mode] = '';
}
}
app/app.component.html
<!--The content below is only a placeholder and can be replaced.-->
<div style="text-align:center">
<h1>
Welcome to {{ title }}!
</h1>
<img width="300" alt="Angular Logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==">
</div>
<h2>Here are some links to help you start: </h2>
<ul>
<li>
<h2><a target="_blank" rel="noopener" href="https://angular.io/tutorial">Tour of Heroes</a></h2>
</li>
<li>
<h2><a target="_blank" rel="noopener" href="https://angular.io/cli">CLI Documentation</a></h2>
</li>
<li>
<h2><a target="_blank" rel="noopener" href="https://blog.angular.io/">Angular blog</a></h2>
</li>
<ngx-codemirror
[options]="options"
[ngModel]="defaults[mode]"
[disabled]="readOnly"
[autoFocus]="true"
(ngModelChange)="handleChange($event)"
></ngx-codemirror>
</ul>
app/app.component.css
@import "~codemirror/lib/codemirror";
@import "~codemirror/theme/material";
But I don't see the component. Can someone help me please.
Upvotes: 2
Views: 9819
Reputation: 31
You should import the editor mode in the src/main.ts file:
import './polyfills.ts';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app';
import 'codemirror/mode/markdown/markdown';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
And try importing the styles in the angular.json:
"styles": [
"./node_modules/codemirror/lib/codemirror.css",
"./node_modules/codemirror/theme/material.css"
]
Upvotes: 3