javascript - 在 v-for 中选择选择框的第一个选项

标签 javascript vue.js

我想在下面的选择框中选择第一个选项。我已经尝试过 this.el.selected = true; 和

if (newValue == 0) return "selected";

但两者都不起作用。

<table class="table table-striped">
    <tr v-for="result in results">
        <select v-model='products[$index].startTime' class="form-control input">
            <option v-for="(timeIndex, time) in result.start_times" v-selected="timeIndex" >@{{ time.start_time }}-@{{ timeIndex }}</option>
        </select>
    </tr>
</table>

Vue.directive('selected', {
    bind: function () {

    },
    update: function (newValue, oldValue) {
        if(newValue==0)
        {
            this.el.selected = true;
        }
        return "";
    },
    unbind: function () {

    }
})

我该怎么做呢?我究竟做错了什么?有没有更好的办法?

最佳答案

如果你的 select 绑定(bind)到你的 v-model,你不需要选择任何特定的选项,Vue 知道将 v-model 中指定的键路径的值绑定(bind)到你在 select 中传递选项的 VALUE。

<option v-for="(timeIndex, time) in result.start_times" :value="timeIndex" >@{{ time.start_time }}-@{{ timeIndex }}</option>

http://vuejs.org/guide/forms.html#Select-Options

但是,您没有设置值。您正在绑定(bind) v-selected="timeIndex"。我以前从未见过 v-selected,所以我在 VueJS 文档中查找它,它没有出现,除非它是自定义指令,否则它什么都不做。

关于javascript - 在 v-for 中选择选择框的第一个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37100115/

相关文章:

Javascript:.className 变化与 .style 变化的性能

javascript - jquery 事件处理程序 - 新处理程序触发过早

vue.js - [Vue 警告] : Property or method "Boston" is not defined on the instance but referenced during render

javascript - 如何在 vuejs 中的页面加载时触发方法?

vue.js - Vuex 正在重置已设置的状态

javascript - 如何检查 jsgrid 中插入/编辑的项目是否重复?

javascript - 使用带矩的 Handlebars 模板

css - 在 Vue 应用程序的构建阶段定义 css pack

javascript - 缩放图像组以适合父宽度/高度

javascript - Buefy 分页更改事件问题