【发布时间】:2018-12-15 18:41:35
【问题描述】:
我如何在 vue.js 中创建一个复选框组件,比如说(HTML 表示):
<v-switch></v-switch>
<v-switch></v-switch>
所以当我创建两个这样的复选框时,如果第一个设置为 true,我想将另一个更改为 false,反之亦然。它们也可以同时为假。
(我是 vue.js 的新手,我只是想在现有环境中添加它)。
存在的代码
Vue.component('v-switch', {
props: ['value', 'disabled', 'color'],
template: `
<div class="switch">
<label>
<input type="checkbox" :disabled="disabled" @change="emitChange()" v-model="data">
<span class="lever" :class="color_class"></span>
</label>
</div>`,
data: function () {
return {
data: this.value || '',
color_class: 'switch-col-' + (this.color || 'green')
};
},
methods: {
emitChange: function () {
var vm = this;
setTimeout(function () {
vm.$emit('change', vm.data);
});
}
},
watch: {
data: function () {
this.$emit('input', this.data);
},
value: function () {
this.data = this.value;
}
},
mounted: function () {
//this.data = this.value;
}
});
和 HTML:
<v-input-wrap translate="newsletter" class="col-sm-1 col-12">
<v-switch v-model="contact_persons[index].newsletter"></v-switch>
</v-input-wrap>
<v-input-wrap translate="blacklist" class="col-sm-1 col-12">
<v-switch v-model="contact_persons[index].blacklist"></v-switch>
</v-input-wrap>
【问题讨论】:
-
选项1。它是一个组件,但最终它将成为一个复选框。在更改时,我会寻找它的兄弟姐妹。 2. Globaly/state 跟踪每个复选框
标签: javascript vue.js vuejs2 vue-component vuetify.js