#components #ckeditor #laravel-8 #inertiajs
Вопрос:
Я хотел бы использовать Ckeditor в своем проекте Laravel/Inertion, но я не могу заставить его работать. Я нашел учебник от LaraTips, но он был написан для VueJS-2. Я работаю с последней версией, которая использует VueJS-3.
Я хочу использовать Ckeditor в отдельном компоненте, и он (вроде) работает, но я не могу отобразить старые данные в редакторе. Я получаю ошибку «Не пойман (в обещании) Ошибка типа: Не удается прочитать свойство ‘setData’ неопределенного значения в Proxy.modelValue (app.js:29)» Что я делаю не так?
Это мой компонент:
<template>
<ckeditor :editor="editor" v-model="text" :config="editorConfig"></ckeditor>
</template>
<script>
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
export default {
data() {
return {
text: "",
editor: ClassicEditor,
editorConfig: {
// The configuration of the editor.
},
}
},
props: {
modelValue: {}
},
setup() {
},
watch: {
modelValue: {
immediate: true,
handler(modelValue) {
this.text = modelValue;
}
},
text(text) {
this.$emit('update:modelValue', text);
}
},
}
</script>
Есть какие-нибудь предложения??
Ответ №1:
Я делаю то же самое учебное пособие (я использую VueJS-3).
это может сработать для вас:
в app.js включить CKEditor:
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) => require(`./Pages/${name}.vue`),
setup({ el, app, props, plugin }) {
return createApp({ render: () => h(app, props) })
.use(plugin)
.use( CKEditor)
.mixin({ methods: { route } })
.mount(el);
},
});
В компонентах/CKEditor.vue проверьте, что вы излучаете
, найдите это this.$emit("input", text);
<template>
<ckeditor :editor="editor" v-model="text" :config="editorConfig"></ckeditor>
</template>
<script>
import ClasicEditor from "@ckeditor/ckeditor5-build-classic";
export default {
props: {
value: {},
},
data() {
return {
text: "",
editor: ClasicEditor,
editorConfig: {
// The configuration of the editor.
},
};
},
watch: {
value:{
inmediate: true,
handler(value){
this.text = value;
}
},
text(text) {
this.$emit("input", text);
},
},
};
</script>
дай мне знать, сработало ли это для тебя
Комментарии:
1. Привет,Рейес, я еще не пробовал. Я нашел другой способ справиться с этим, но я постараюсь и дам вам знать. Этого просто не будет в течение нескольких дней. Спасибо за ваши усилия!!! Я действительно ценю это.