2016-07-07 107 views
0

在早期版本的vue.js中,您可以使用optgroups(如this)创建一个动态选择列表。在vue 1.x中选择`optgroup`

在较新版本的vue中,文档在选项中显示为使用v-for,看起来他们不再支持optgroups。有没有解决方法?

+2

你不能使用嵌套的'V-for's?外'v-for'来处理'optgroup's和内循环来填​​充'option's? –

回答

3

创建optgroups列表的最简单方法是嵌套v-for。对optgroup使用外部循环,对option使用内部循环。这里有一个例子:

var app = new Vue({ 
 
    el: '#app', 
 
    
 
    data: { 
 
    selected: '', 
 
    optgroups: [ 
 
     { label: 'A', options: ['a', 'b']}, 
 
     { label: 'B', options: ['c', 'd']} 
 
    ] 
 
    } 
 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.js"></script> 
 
<div id="app"> 
 
    <select v-model="selected"> 
 
    <optgroup :label="group.label" v-for="group in optgroups"> 
 
     <option :value="option" v-for="option in group.options">{{ option }}</option> 
 
    </optgroup> 
 
    </select> 
 
</div>

+0

@ asemahle--用'filterBy'完成这项工作吗?请参阅以下错误:https://jsfiddle.net/y106z528/ – user101289

+1

语法是'filterBy VALUE in PROPERTY'。你的小提琴在'OBJECT'中'过滤价值'。 [这是你的小提琴的一个分支](https://jsfiddle.net/asemahle/1uar6oc1/)。您需要添加额外的逻辑来隐藏空的optgroups。 – asemahle