VueJS 在 v-model 中反转值
VueJS invert value in v-model
这是我的代码:
<input
v-model="comb.inactive"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
我需要在 v 模型上应用 comb.inactive 的反转。
这是我尝试过的:
<input
v-model="comb.inactive == 1 ? 0 : 1"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
<input
v-model="comb.inactive == 1 ? false : true"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
你还有其他想法吗?
您应该执行以下操作:
<input
v-model="comb.inactive"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
mounted(){
this.comb['inactive'] = !(this.comb['inactive']);
}
为了更好的练习,您可以使用computed
:
<input
v-model="checkedItem"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
computed: {
checkedItem: {
get: function () {
return !this.comb['inactive'];
},
set: function (newVal) {
console.log("set as you want")
}
}
如果你想反转 v-model,那么只需制作一个自定义输入组件!
checkbox-inverted
Vue.component('reverse-checkbox', {
props: ['value', 'label'],
template: `
<label>
<input
type="checkbox"
:checked="valueInverse"
@input="onInputChanged"
/>
<span>{{label}}</span>
</label>
`,
computed: {
valueInverse() {
return !this.value;
},
},
methods: {
onInputChanged(e) {
this.$emit('input', this.valueInverse);
},
},
});
用法
然后您可以像使用任何其他输入组件一样将其与 v-model
一起使用。 more information about custom inputs here
<reverse-checkbox
v-model="invertedModel"
label="This checkbox will show the inverted value"
></reverse-checkbox>
考虑使用 true-value
和 false-value
作为快捷方式:
<input
v-model="comb.inactive"
type="checkbox"
:true-value="false"
:false-value="true"
>
或者在这种情况下,您可能正在寻找交替整数,您可以直接设置它们。
<input
v-model="comb.inactive"
type="checkbox"
:true-value="1"
:false-value="0"
>
这是我的代码:
<input
v-model="comb.inactive"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
我需要在 v 模型上应用 comb.inactive 的反转。
这是我尝试过的:
<input
v-model="comb.inactive == 1 ? 0 : 1"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
<input
v-model="comb.inactive == 1 ? false : true"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
你还有其他想法吗?
您应该执行以下操作:
<input
v-model="comb.inactive"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
mounted(){
this.comb['inactive'] = !(this.comb['inactive']);
}
为了更好的练习,您可以使用computed
:
<input
v-model="checkedItem"
type="checkbox"
@click="setInactive(comb.id_base_product_combination)"
>
computed: {
checkedItem: {
get: function () {
return !this.comb['inactive'];
},
set: function (newVal) {
console.log("set as you want")
}
}
如果你想反转 v-model,那么只需制作一个自定义输入组件!
checkbox-inverted
Vue.component('reverse-checkbox', {
props: ['value', 'label'],
template: `
<label>
<input
type="checkbox"
:checked="valueInverse"
@input="onInputChanged"
/>
<span>{{label}}</span>
</label>
`,
computed: {
valueInverse() {
return !this.value;
},
},
methods: {
onInputChanged(e) {
this.$emit('input', this.valueInverse);
},
},
});
用法
然后您可以像使用任何其他输入组件一样将其与 v-model
一起使用。 more information about custom inputs here
<reverse-checkbox
v-model="invertedModel"
label="This checkbox will show the inverted value"
></reverse-checkbox>
考虑使用 true-value
和 false-value
作为快捷方式:
<input
v-model="comb.inactive"
type="checkbox"
:true-value="false"
:false-value="true"
>
或者在这种情况下,您可能正在寻找交替整数,您可以直接设置它们。
<input
v-model="comb.inactive"
type="checkbox"
:true-value="1"
:false-value="0"
>