javascript - 如何在 Vue.js 中获取 HTML 5 data-* 值?

标签 javascript vue.js vuejs2

假设我有这个:

<select class="form-control" name="gateway">
  <option data-type="typeA" value="1">Test String</option>
  <option data-type="typeB" value="2">Test String</option>
  <option data-type="typeC" value="3">Test String</option>
</select>
<span>@{{ typeMapper(data-type) }}</span>

这是我的 Vue.js 脚本:

const app = new Vue({
    el: '#vue-app',

    data: {},

    methods: {
        typeMapper: function (type) {
            var array = {
                'typeA':'You selected Type A',
                'typeB':'You selected Type B',
                'typeC':'You selected Type C',
            };
            return array[type];
        }
    }
});

现在如何在 Vue.js 中获取 data-type 值?

我想将选定的选项 data-type 值传递给 Vue.js typeMapper 方法,并在 span 标记中显示结果。

我不知道如何将 data-type 值传递给 Vue.js !

附言:

我正在使用 Vue.js 2

最佳答案

您的数据不是真正的 javascript 数组,所以我使用 Object.keys 函数来获取键名。这里有一个快速的方法来做你正在寻找的事情:

<div id="app">
  <select class="form-control" name="gateway">
    <option v-for="(key,index) in Object.keys(array)" :value="index+1" :data-type="key">
      {{ array[key]}}
    </option>
  </select>
</div>

以及 Vue 代码:

new Vue({
  el: '#app',
  data: {
    array: {
      'typeA': 'You selected Type A',
      'typeB': 'You selected Type B',
      'typeC': 'You selected Type C',
    }
  }
});

这是一个 working fiddle .

关于javascript - 如何在 Vue.js 中获取 HTML 5 data-* 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42455886/

相关文章:

javascript - JavaScript 函数可以修改 ASP.NET 服务器上运行的元素吗?

Javascript 代码不适用于 Chrome 和 firefox,但适用于 IE

vue.js - 在初始路由之前执行 Vuex 操作

javascript - Vue 的整页滚动?

javascript - 嵌套循环中匿名闭包的可读性

javascript - 需要这些样式面板在数据输入后改变颜色

javascript - 如何获取按键的当前值

javascript - 如何在搜索 vuejs 列表时添加加载图标

javascript - Vue.js 组件在事件触发后丢失状态

css - 如何在两个 css 样式文件(rtl、ltr)vue.js 之间切换