javascript - 如何根据存在的数据编辑模板?

标签 javascript vue.js vuejs2 vue-component

我有一个创建 <select> 的 Vue 组件与 <option>秒。我希望选择中的选项依赖于列表。

Vue.component('column-header', {
    data: function() {
         return {
           options: ['Name', 'Address', 'Email', 'Mobile', 'Card Number', 'Other'],
         }
    },
    template: `<div class="uk-width-1-5">
                <select class="uk-select">
                    {{ options }}
                </select>
            </div>`
});

new Vue({ el: '#app' })

当我决定稍后扩展我的选项列表时,它应该会自动插入新项目作为选项。这是正确的做法吗?

最佳答案

使用 v-for 呈现元素列表:

<option v-for="option in options">{{option}}</option>

options data 属性是 react 性的,因此将项目添加到该数组会自动更新模板以包含新的 <option><select> .

Vue.component('column-header', {
    data: function() {
         return  {
           options: ['Name', 'Address', 'Email', 'Mobile', 'Card Number', 'Other'],
         }
    },
    template: `<div class="uk-width-1-5">
                <select class="uk-select">
                    <option v-for="option in options">{{option}}</option>
                </select>
                <button @click="addOption">Add option</button>
            </div>
            `,
  methods: {
    addOption() {
      this.options.push('Foo' + this.options.length);
    }
  }
});

new Vue({ el: '#app' })
<script src="https://unpkg.com/vue@2.6.6"></script>

<div id="app">
  <column-header></column-header>
</div>

关于javascript - 如何根据存在的数据编辑模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54721013/

相关文章:

javascript - 如何构建 polymer 元素?

javascript - 使用原型(prototype)从另一个构造函数继承与在继承的构造函数中使用 apply 方法之间的区别

javascript - 在 Javascript/NodeJs 中无需链接代码的多个数据库调用

javascript - Vue.js 如何在实例上定义方法

javascript - HTML 应用程序的网格

javascript - Vue、Vuetify - 减少工具栏中按钮之间的空间

vue.js - 我使用哪个命令来生成 Vue 应用程序的构建?

vue.js - 传入变量 HTML 的 Vue 插槽

javascript - 另一个组件的vue调用方法

javascript - 覆盖链接的按钮