javascript - VueJS : How to embed the emoji component dynamically in contentEditable div

标签 javascript vuejs2 electron vue-component

如何在 div 中键入一些文本时将表情符号组件动态嵌入到 contentEditable div 中。

这是我的代码的摘录:

<picker set="emojione" @select="addEmoji" />
<div>
    {{ inputBoxValue }}
</div>

<script>
    export default {
        name: 'Some',
        components: {
            picker: Picker,
            emoji: Emoji,
        },
        data() {
            return {
                inputBoxValue: '',
            };
        },
        methods: {
            addEmoji() {
                this.inputBoxValue = ' <
                emoji emoji = "{ id: "
                heart_eyes ", skin: 2 }"
                set = "emojione"
                size = "16"
                tooltip = "true" / > ';
            }
        }
    }; 
<script>

最佳答案

您在这里对问题的思考是错误的,而不是通过字符串将组件添加到 dom 中,您需要开始使用 v-for和组件。例如,如果我们创建以下组件:

<div>
    {{emojiText}}
</div>

<script>
    export default {
       props: ['id', 'set', 'size', 'tooltip'],
        name: 'InnerEmojiHolder',
        data() {
            return {
                emojiText: '',
            };
        },
        methods: {

        },
        ready(){
         // put logic to build emoji here using props
        }
    }; 
<script>

然后可以在现有组件中使用它,如下所示:
<picker set="emojione" @select="addEmoji" />
<div>
  <template :for="emoji, index in currentInput">
    <innerEmojiHolder :id="index" :set="emoji.set" :tooltip="emoji.tooltip" :size="emoji.size" : ></innerEmojiHolder>
  </template>
</div>

<script>
    export default {
        name: 'Some',
        components: {
            picker: Picker,
            emoji: Emoji,
            innerEmojiHolder: innerEmojiHolder,
        },
        data() {
            return {
                currentInput: []
            };
        },
        methods: {
            addEmoji() {
             // Push our emoji variables into currentInput
            }
        }
    }; 

这允许我们使用 for 打印出所有表情符号,并将使用来自子级内部父级的数据。

关于javascript - VueJS : How to embed the emoji component dynamically in contentEditable div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51384444/

相关文章:

javascript - 从事件发射器创建生成器

javascript - 从 Express.js 应用程序的 index.js 文件中排除默认路由

javascript - 添加特定元素的 onclick 事件(没有 id 或 class)

javascript - Vuetify - 如何处理 <v-btn>​​ 上的点击事件?

javascript - Bootstrap Vue, <b-table> 带有基于表格绑定(bind)项数据的复选框输入

node.js - 将 Edge.JS 与 Electron 结合使用失败

javascript - 有没有一种方法可以使用 Javascript 跟踪从哪个 window.name 打开了一个新窗口(在新选项卡中打开)?

javascript - 捕获 Javascript 返回的 Promise 中的错误

javascript - 无法使用 electronjs 和 jquery 显示 OpenDialog

javascript - Docker for Windows REST API - 启用 CROSS