Ich versuche, eine Vue-Komponente für TinyMCE zu erstellen, aber ich habe einige Probleme, die ich nicht lösen kann! Kann mir jemand helfen? Oder vielleicht einen besseren Weg zu gehen beraten?TinyMCE und Vuejs als Komponente
Es ist meine Komponente
import Vue from 'vue'
import _ from 'lodash'
export
default {
props: {
model: {
default() {
return null
}
},
showLeadInfo: {
default() {
return false
}
}
},
data() {
return {
id: 'editor_' + _.random(10000, 99999)
}
},
watch: {
model() {
if (this.model == null)
tinyMCE.activeEditor.setContent('');
}
},
ready() {
var vm = this;
tinyMCE.baseURL = "/vendor/tinymce/";
tinymce.init({
selector: "#" + vm.id,
theme: "modern",
height: 200,
plugins: [
"advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker",
"searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
"save table contextmenu directionality emoticons template paste textcolor"
],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media fullpage | forecolor backcolor emoticons",
style_formats: [{
title: 'Bold text',
inline: 'b'
}, {
title: 'Red text',
inline: 'span',
styles: {
color: '#ff0000'
}
}, {
title: 'Red header',
block: 'h1',
styles: {
color: '#ff0000'
}
}, {
title: 'Example 1',
inline: 'span',
classes: 'example1'
}, {
title: 'Example 2',
inline: 'span',
classes: 'example2'
}, {
title: 'Table styles'
}, {
title: 'Table row 1',
selector: 'tr',
classes: 'tablerow1'
}],
setup: function(editor) {
editor.on('keyup', function(e) {
vm.model = editor.getContent();
});
}
});
},
events: {
updateTinyValue(value) {
tinyMCE.activeEditor.setContent(value);
}
}
}
HTML
<textarea :id="id" v-model="model" v-el:editor></textarea>
PS: Es ist mit Vueify aus, so gibt es eine Vorlage und ein Skript-Tag ist, dass Code wickeln.
Mein größtes Problem ist, wenn ich versuche, mehrere Editoren instanziieren Ich kann nicht die richtige Komponente wegen dieses Codes tinyMCE.activeEditor.setContent(value)
... Ich habe versucht tinyMCE.get('#' + this.id).setContent()
, aber es funktioniert nicht!
Jemand hat eine Ahnung?
Andere Sache ist über TinyMCE Plugins ... Ich benutze Bower + Gulp, um meine Vermögenswerte zu verwalten! Ich würde gerne alle Plugins auf meinem gulpfile ablegen (ich benutze Laravel 5) ... Momentan werden die TinyMCE Plugins einzeln geladen und es braucht viel Zeit!
Vielen Dank im Voraus!