contenteditable属性可以指定元素内容是否可编辑。
vue 中使用这一属性后,编辑内容却不支持 v-model.
不能使用一下方法绑定
1
| <div contenteditable v-model="value"></div>
|
提取成组件后可以使用 v-model
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <template> <p class="editable" ref="editable" contenteditable :placeholder="placeholder" v-on="listeners"></p> </template>
<script> export default { props: { value: { type: String, default: "", }, placeholder: { type: String, default: "", }, }, computed: { listeners() { return { ...this.$listeners, input: this.onInput }; }, }, mounted() { this.$refs.editable.innerText = this.value; }, methods: { onInput(e) { this.$emit("input", e.target.innerText); }, }, }; </script> <style> .editable:empty:before { content: attr(placeholder); } </style>
|
使用方法
1
| <Editable placeholder="输入缺陷说明" v-model="value" />
|
版权声明: 此文章版权归houxiaozhao所有,如有转载,请注明来自原作者