我有点困惑如何在我的应用程序中使用它作为组件。具体来说,我很困惑如何正确地将数据从我的父组件传递<quasar-editor />
到https://github.com/donotebase/quasar-tiptap。
我下面的代码会将episode.keyLessons
我父组件中的数据传递到编辑器中。但是,当我尝试在编辑器中键入时,空格键没有注册。如果光标在<h1>
顶部的部分中并且按下了任意键,则光标会立即跳到<p>
编辑器的部分,而无需我单击那里。
我究竟做错了什么?
我试过的:
编辑器.vue
<template>
<div>
<quasar-tiptap v-bind="options" @update="onUpdate" />
</div>
</template>
<script>
import { QuasarTiptap, RecommendedExtensions } from "quasar-tiptap";
import "quasar-tiptap/lib/index.css";
export default {
name: "Editor",
props: ['value'],
data() {
return {
options: {
content: '',
editable: true,
extensions: [
...RecommendedExtensions
// other extenstions
// name string, or custom extension
],
toolbar: [
"add-more",
"separator",
"bold",
// other toolbar buttons
// name string
]
},
json: "",
html: ""
};
},
components: {
QuasarTiptap
},
methods: {
onUpdate({ getJSON, getHTML }) {
this.json = getJSON();
this.html = getHTML();
this.$emit('update', this.html)
}
},
watch: {
value: {
handler(newVal, oldVal) {
this.options.content = newVal;
console.log(`value changed: ${newVal}`);
},
immediate: true
}
},
mounted() {
// set language dynamically
this.$o.lang.set("en-us");
}
};
</script>
父.vue
<template>
<Editor v-model="episode.keyLessons" @update="update" />
</template>
<script>
data: () => ({
episode: {
keyLessons: null,
}
}),
methods: {
update(value) {
this.episode.keyLessons = value;
},
}
</script>