【发布时间】:2017-11-24 09:26:04
【问题描述】:
我有选择选项中继器。
我想要的是,当我在第一个选项中选择 johndoe 时,它将不再显示在第二个选择选项中。
这是我的html
<div id="app">
<h1>Vue JS Multiple Fields Repeater</h1>
<div class="col-sm-6">
<div class="panel panel-default relative has-absolute" v-for="(field, index) in users.usersRepeater">
<button @click="addUsersField" type="button">
Add
</button>
<button @click="deleteUsersField(index)" v-if="field != 0" type="button">
Delete
</button>
<div class="panel-body has-absolute">
<div class="form-group">
<label for="users" class="control-label col-sm-3 text-left">Users {{field}}</label>
<select :name="'users'+index"
class="form-control"
id="users">
<option value="" hidden>Select User</option>
<option value="1">John Doe</option>
<option value="2">Mark Doe</option>
<option value="3">Mae Doe</option>
<option value="4">John Smith</option>
<option value="5">Mae Smith</option>
</select>
</div>
</div>
</div>
</div>
</div>
这是我的 vue.js
new Vue({
el: '#app',
data: {
users: {
usersRepeater: [{ user: '' }]
}
},
methods: {
addUsersField: function() {
this.users.usersRepeater.push({
user: ''
});
},
deleteUsersField: function(index) {
this.users.usersRepeater.splice(index, 1);
},
}
});
这是小提琴 -> https://jsfiddle.net/0e3csn5y/23/
【问题讨论】:
-
你不应该在你的 html 中硬编码用户列表
-
也许这会有所帮助jsfiddle.net/943bx5px/2 我可以做到但我现在没有时间
-
我已经更新了小提琴 -> jsfiddle.net/0e3csn5y/23
-
创建另一个列表以保留选定的用户,或者更好地将另一个属性添加到 isSelected 到您的用户列表中...
-
这个npm package 可能对你有用。看起来它完全符合您的要求。
标签: vue.js