Vue.js:用户单击按钮时加载模板(或 div)?

标签 vue.js vuejs2 vue-component

所以我目前有一个模板位于“.vue”文件中,如下所示:

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

我不想加载它,除非用户点击按钮,比如

<button @click="loadTheTemplateAbove">See Data</button>

我试过使用这个例子:https://v2.vuejs.org/v2/guide/conditional.html#Controlling-Reusable-Elements-with-key .但是它在错误消息中说“组件模板应该只包含一个根元素”。

我认为我需要的不仅仅是显示/隐藏,还需要一些可以动态启动模板的东西。

<template>
  <div id="data">
    <button @click="loadTemplate">Load the template</button>
    <div v-if="buttonClicked">
      <div id="dataAttachedToThisDiv"></div>
    </div>
  </div>
</template>

最佳答案

您遇到的错误意味着<template></template> 中有不止一个根元素。标签。

Vue.js(和其他基于模板的框架/库)要求只有一个根元素。

不会工作:

<template>
  <div id="dataAttachToMe"></div>
  <button @click="loadTheTemplateAbove">See Data</button>
</template>

起作用:

<template>
  <div id="someRootDiv">
    <div id="dataAttachToMe">Some data</div>
    <button @click="loadTheTemplateAbove">See Data</button>
  </div>
</template>

这是您要实现的目标的代码示例 ( App.vue):

Edit Vue Template

基本思路:我们必须创建一个变量,该变量将在单击按钮时更改。我们添加 v-if依赖于该变量并将处理元素可见性的指令。

关于Vue.js:用户单击按钮时加载模板(或 div)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52998125/

相关文章:

vue.js - Axios 参数未正确附加到 URL

javascript - 让 Vue 解释以编程方式插入的组件

javascript - 如何修复 "default slot raw html rendering in Vue.js component"

javascript - 从父组件到子组件的事件

vue.js - 如何在 VueJS 中合并 2 个第三方组件

javascript - 我如何在 vue js 中使用内联声明的变量?

javascript - Vue.js:只允许带一位小数的范围内的数字

vuejs2 - 如何在 `transition-group` 中设置属性或 Prop

javascript - 将数据从 Vue 实例传递到 Vue 组件

javascript - 在模板中访问 "this"