javascript - 如何在 nuxt 中克隆带有函数的 vue 元素?

标签 javascript html vue.js nuxt.js

我有这样的模板

<template>
<div>
  <div id="hiddenElement">
    <MyElement v-for='...' @click="...">
    </MyElement>
  </div>

  <div id="appendElementsHere" />
</div<
</template>

用户可以将元素追加到列表中,所以我有这样的函数:

someFunc(){
const hidden = document.querySelector('#hiddenElement')
const target = document.querySelector('#appendElementsHere')
target.innerHtml += hidden.outerHtml
}

被克隆的元素可以成功附加到#appendElementsHere, 但是点击功能不起作用。我认为可能是 vue 元素中的点击功能,而不是 html。如何将元素克隆为 vue-element,而不仅仅是 html?或任何在脚本(方法)中创建 vue 元素然后附加到 dom 的想法??

最佳答案

从 javascript 的 Angular 来看,您所做的在技术上是正确的,但是点击功能不起作用,因为您在“克隆”元素后没有进行任何数据绑定(bind)。我说“克隆”,因为您所做的只是传递一堆包含 HTML 的字符串。话虽如此,您接下来要做的就是手动将事件监听器添加到克隆的元素。

但是,您可以尝试以更 Vue 的方式来实现,因此您可以创建所需组件的 Vue 实例(在您的情况下为 MyElement),并使用代码传递所有您想要的 Prop /数据,然后将其附加到您需要的元素。

Here's an example以及如何使用按钮进行操作。如果单击“单击以插入”,您将看到 CustomButton 组件是如何附加到按钮右侧的。

谢谢,

关于javascript - 如何在 nuxt 中克隆带有函数的 vue 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58533961/

相关文章:

Javascript:从数组中删除项目

javascript - 追加功能不会将关闭菜单添加到先前创建的关闭菜单或先前的行中

html - 为 HTML 颜色输入设置自定义图标

html - 连接两个 Bootstrap 列内容的短线

html - 如何在php回显字符串旁边的标题中添加一个按钮

vue.js - Vuex Store 是否可以从控制台或客户端浏览器访问?

javascript - 未定义本地存储

javascript - Node.js 返回文件结果

javascript - JQuery Ajax 成功后弹出窗口不会打开

javascript - 一个简单的Javascript编写方法