EDIT:
この質問 Using CKEditor with Aurelia はオーレリアとCKEditorバージョンを使用する方法のより良い例があります。あなたは を使ってください。ここで
はCKEditorバージョンを使用した例です。
JS - 入力-editor.js
import {inject, bindable, bindingMode, containerless} from 'aurelia-framework';
@containerless
@inject(Element)
export class InputEditor {
@bindable({ defaultBindingMode: bindingMode.twoWay }) value;
@bindable name;
constructor(element) {
this.element = element;
}
updateValue() {
this.value = this.textArea.value;
}
bind() {
this.textArea = this.element.parentElement.getElementsByTagName('textarea')[0];
let editor = CKEDITOR.replace(this.textArea);
this.editorName = editor.name;
editor.on('change', (e) => {
this.value = e.editor.getData();
});
}
}
HTML入力-editor.html
<template>
<textarea change.trigger="updateValue()"></textarea>
<input type="hidden" name.bind="name" value.bind="value" />
</template>
今、あなたはこのようにそれを使用する必要があります。
<input-editor value.bind="someProperty">
</input-editor>
I CKEDITORがいくつかのファイルを非同期的にロードしなければならないので、webpack/systemJSで適切にCKEDITORをロードする方法はまだ分かりません。だから、私は<script>
タグを使用して、グローバルにロードする必要がありました:
<script src="/layout/js/lib/ckeditor/ckeditor.js"></script>
ロードアプローチは良いことではありませんが、それが正常に動作します。
グローバルにインストールされたCKEDITORを使用した例があります。興味がありますか? –
もしそれがaureliaバインディングで、node.jsと同じものであれば、それはおそらくalloyeditorでもうまくいきます。 – Saikios
ええと、それはaureliaバインディングで動作します。唯一の問題は、タグを使用して別々にロードする必要があったことです。 CKEDITORはいくつかのファイルを非同期的にロードしなければならず、私はまだwebpackを使用して正しくロードする方法を理解していませんでした。しかし、それは非常にうまくいく。 –