Dieses Beispiel funktioniert gut in ESNext/SystemJS Skelett .
Zuerst installieren ckeditor über jspm:
jspm install npm:ckeditor
Nun lassen Sie uns Editor auf CKEditor basierend erstellen aus. Ich nannte es als editor
:
editor.html:
<template>
<textarea change.delegate="updateValue()"></textarea>
<input type="hidden" name.bind="name" value.bind="value" />
</template>
editor.js
import {inject, bindable, bindingMode} from 'aurelia-framework';
import 'ckeditor';
@inject(Element)
export class Editor {
@bindable({ defaultBindingMode: bindingMode.twoWay }) value;
@bindable name;
constructor(element) {
this.element = element;
}
updateValue() {
this.value = this.textArea.value;
}
bind() {
this.textArea = this.element.getElementsByTagName('textarea')[0];
let editor = CKEDITOR.replace(this.textArea);
editor.on('change', (e) => {
this.value = e.editor.getData();
});
}
}
Der folgende Teil ist seltsam, aber es ist notwendig, da ckeditor des achitecture
In Ihrem index.html, fügen Sie diese Zeile vor allen <script>
tags:
<script>var CKEDITOR_BASEPATH = 'jspm_packages/npm/[email protected]/';</script>
Es erzählt CKEditor, dass sein Vermögen in den jeweiligen Ordner befinden. Sei nur vorsichtig mit der Version.
Ihre Komponente sollte jetzt funktionieren, aber wir müssen einige zusätzliche Konfiguration vornehmen, damit es in der Produktion funktioniert.
CKEDITOR lädt einige Dateien asynchron. Diese Dateien müssen beim Bündeln und Exportieren der App exportiert werden. Dazu bearbeiten build/export.js, die nun in etwa so sein sollte:
module.exports = {
'list': [
'index.html',
'config.js',
'favicon.ico',
'LICENSE',
'jspm_packages/system.js',
'jspm_packages/system-polyfills.js',
'jspm_packages/system-csp-production.js',
'styles/styles.css'
],
// this section lists any jspm packages that have
// unbundled resources that need to be exported.
// these files are in versioned folders and thus
// must be 'normalized' by jspm to get the proper
// path.
'normalize': [
[
// include font-awesome.css and its fonts files
'font-awesome', [
'/css/font-awesome.min.css',
'/fonts/*'
]
], [
// include bootstrap's font files
'bootstrap', [
'/fonts/*'
]
], [
'bluebird', [
'/js/browser/bluebird.min.js'
]
], [
'ckeditor', [
'/config.js',
'/skins/*',
'/lang/*'
]
]
]
};
Nun wird der gulp export
Befehl alle notwendigen Dateien exportieren.
Hoffe, das hilft!
Siehe diese Antwort, vielleicht hilft es http: // stackoverflow.com/questions/36636621/is-there-any-integration-für-ein-textarea-wysiwyg-and-aurelia –
Ich bin mir nicht sicher, ob es noch funktioniert. Wie auch immer, ich werde versuchen, eine bessere Antwort zu schreiben, wenn ich Zeit habe –
Ja, das ist der Beitrag Ich habe die obige Idee von .... aber scheinen diesen Fehler zu bekommen :( – Mike