【发布时间】:2021-08-28 06:30:13
【问题描述】:
我使用 Vue 和 Bootstrap Tokenfield 创建动态组件。但是v-model 在这种情况下不起作用。
假设,我在下面有一个数组:
索引变体选项
1个aa
2 sss
当我删除索引 1 时,索引 1 的结果应该是“sss”但仍然是“aaa”
<div class="card" v-for="(variant, index) in form.variants" :key="index">
<div class="card-body"> <span class="float-right" style="cursor: pointer" @click="deleteVariant(index)">
X
</span>
<div class="row">
<div class="col-md-4">
<label for="weight">Variant Type {{ index + 1 }} </label>
<div class="input-group">
<input type="text" id="variant_type" class="form-control" v-model="
variant.variant_type
" @keyup="tokenField()" placeholder="Input variant type. E.g: Color" name="name" required autofocus /> </div>
</div>
<div class="col-md-8">
<label for="weight">Variant Options {{ index + 1 }}</label>
<div class="input-group">
<input type="text" id="variant_options" autofocus="true" v-model="
variant.variant_options
" @mouseover="
tokenField()
" placeholder="Input variant options. E.g: Blue, Brown," class="
form-control
variant_options
" /> </div>
data() {
return {
form: new Form({
variants: [
{
variant_type: '',
variant_options: '',
},
],
}),
};
},
methods: {
tokenField() {
$('.variant_options').tokenfield({
showAutocompleteOnFocus: true,
});
},
addVariant() {
if (this.form.variants.length <= 1) {
this.form.variants.push({
variant_type: '',
variant_options: '',
});
} else {
this.error = 'You can only add 2 type of varians';
$('#errMsg').show();
}
},
deleteVariant(index) {
this.form.variants.splice(index, 1);
$('#errMsg').hide();
},
}, // methods:
【问题讨论】:
-
@CheerUp 您的代码不完整。请提供完整代码。
-
data()代码中的new Form({位有什么原因吗? -
@Fabalance:不完整是什么意思?你需要什么零件?缺少什么?就告诉我嘛。我想,我已经写了所有的代码。
-
@CheerUp 提供其余代码的目的是要有一个可重现的示例进行测试。如果您不提供此信息,则很难确定确切的问题。忠告:检查态度,如果你那样做,你不会得到太多帮助。
-
@Fabalance: 你的意思是我应该用jsfiddle写吗?
标签: javascript vue.js bootstrap-tokenfield