最終的にng2-file-uploadの使い方を管理しました。以下のコードは、私がtinyMCE用のものを定義するエディタコンポーネントの一部です。私は最もインパクトのある部分のみを表示します。
HTML:
<textarea id="{{elementId}}"></textarea>
<input id='input' type="file" #fileInput ng2FileSelect [uploader]="uploadFile.uploader" style="display: none;"
accept="image/png,image/gif,image/jpeg"/>
は活字体:
ngOnInit() {
this.uploadFile.uploader.onCompleteItem = (item: any, response: string, status: any, headers: any) => {
....
tinymce.activeEditor.insertContent('<img src="' + location + '"/>');
....
};
}
ngAfterViewInit() {
tinymce.init({
.....
setup: editor => {
this.editor = editor;
editor.on('keyup',() => {
const content = editor.getContent();
this.onEditorKeyup.emit(content);
});
editor.on('reset', function(e) {
editor.setContent('');
});
editor.addButton('mybutton', {
text: 'Image',
icon: 'image',
onclick: function() {
var input = document.getElementById('input');
input.click();
}
});
},
.....
}
それはちょうどクリックして、アップロードにファイルピッカーを開き、非常に派手ではありません(autouploadするアップローダーを設定する必要があります)が、それはのために十分です私。
''すでにアプリケーションでng2-file-uploadを正常に使用しましたが、TinyMCEはtypescriptをサポートしていないため、そこでは使用できませんでした」 - TinyMCEはブラウザで動作し、ブラウザは実際にTypeScriptを実行することができません。ウェブブラウザに配信される前に、すべてJavaScriptでコンパイルされます。 –
@MichaelFromin私が言ったことは、カスタムボタンとeditor.windowManager.openをhtmlの下で使用することはできません:Angularを使用し、typescriptを利用することです。 – BadHabits