javascript - 用于选择的 Vue.js 选项组件

标签 javascript vue.js vue-component

我正在尝试创建这个组件:

<template>
  <option v-for="(text, value) in options" :value="value">
    {{ text }}
  </option>
</template>

但我收到此错误消息:

template syntax error Cannot use v-for on stateful component root element because it renders multiple elements

我怎样才能创建这种组件? 我正在使用 vue 2.0.5

以下是一些相关文档:https://v2.vuejs.org/v2/guide/components.html#DOM-Template-Parsing-Caveats

最佳答案

您不能在组件内执行此操作,您需要一个顶级元素,因此您需要将其包装在一个选择中并将整个选择框作为您的组件。然后,您需要将任何选项作为 props 传递,因此:

模板:

<template id="my-select">
  <select>
    <option v-for="(text, value) in options" :value="value">
      {{ text }}
    </option>
  </select>
</template>

组件:

Vue.component('my-select', {
  props: ['options'],
  template: "#my-select"
});

查看模型:

new Vue({
  el: "#app",
  data: {
    options: {
      "1": "foo",
      "2": "bar",
      "3": "baz"
    }
  }
});

现在在您的根页面中,只需将选项作为 Prop 传递:

<my-select :options="options"></my-select>

这是 JSFiddle:https://jsfiddle.net/zL6woLa2/

关于javascript - 用于选择的 Vue.js 选项组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40547802/

相关文章:

javascript - 为什么在浏览器中不显示任何内容? (vue.js 2)

javascript - jQplot 日期轴图表起点

javascript - 在 Chart.js 中将 Y 轴值从实数更改为整数

php - 如何限制用户在没有特定操作(例如,单击提交按钮)的情况下离开页面

javascript - GWT EXT 仅在图表中出现异常

javascript - Vue.js 2 - 从重新填充的列表中选择的项目不刷新更改

vue.js - Nuxt如何浏览静态文件

vue.js - 在 Vue.js 的下拉列表中填充嵌套数组

node.js - Vuex VueJS Node.js维护和存储与API的多个连接

javascript - 在 Vue 中使用条件问题创建动态表单