我在需要拼接的从阵列中,我使用了下列数据,如何从vue js中的数组中删除选定的数据?
HTML:
<div id="app">
<select v-model="facilityAvailable" name="facilities" multiple="multiple" id="facilities" size="4" class="form-control">
<option v-for="availability in availableFacilities" v-bind:value="availability">{{availability.label}}--</option>
</select>
<a @click="removeFacilities" class="btn btn-default remove_option" rel="facilities2" id="remove"><i class="fa fa-arrow-left"></i></a>
<a @click="addFacilities" class="btn btn-default add_option" rel="facilities2" id="add"><i class="fa fa-arrow-right"></i></a>
<select v-model="facilitySelected" name="facilities" multiple="multiple" id="facilities2" size="4" class="form-control">
<option v-for="facility in selectedFacilities" v-bind:value="facility">{{facility.label}}</option>
</select>
</div>
脚本:
new Vue({
el: "#app",
data: {
facilityAvailable: [],
facilitySelected:[],
availableFacilities: [{
value: 0,
label: 'Double (Non a/c)'
},
{
value: 1,
label: 'Premium Double (a/c)'
},
{
value: 2,
label: 'Standard Double (a/c)'
}
],
selectedFacilities: [],
},
methods: {
removeFacilities() {
this.availableFacilities = this.facilitySelected.concat(this.availableFacilities);
this.selectedFacilities.splice(this.availableFacilities.value,1);
},
addFacilities() {
this.selectedFacilities = this.facilityAvailable.concat(this.selectedFacilities);
this.availableFacilities.splice(this.selectedFacilities.value,1);
}
}
})
我在这里做这样将一个元素从一个选择框转移到另一个选择框,为此,我使用concat
添加到另一个选择框,然后使用splice
删除该元素。一切都很好。但是当我splice
,它拼接的顺序是0,1,2
我需要根据该特定元素的索引号进行拼接。很明显,我可以按照任何顺序选择和删除元素,以便将特定元素删除并转移到第二个选择框中,而现在如果我按顺序删除它,它的工作正常,但如果我改变顺序并拼接它不起作用。另外当我选择多个元素并删除时,发生同样的事情。请帮我解决这个问题。
小提琴环节是,https://jsfiddle.net/pmvp3td6/9/
什么你在你的方法中得到'index'就是标准的'MouseEvent'对象。 – connexo
addFacilities(){var that = this;的console.log(即); - 无论如何,在普通的js中,这应该是选定的元素,但不能确定。 – marko
@connexo通过删除索引更新我的小提琴。 –