Vue.js Vuejs:如何在V模型中不使用布尔值?

Vue.js Vuejs:如何在V模型中不使用布尔值?,vue.js,v-model,Vue.js,V Model,我正在从API获取options.customerdata.showbutton的值,作为true,因此现在开关处于on状态 我希望开关处于关闭状态,因此应给出v-model=“false”。但是 试图给予 v-model=“!(options.customerdata.showbutton)” 不工作并显示错误。如何做到这一点 <b-form-checkbox v-model="options.customerdata.showbutton" name="logo-display" s

我正在从API获取
options.customerdata.showbutton
的值,作为
true
,因此现在开关处于on状态

我希望开关处于关闭状态,因此应给出
v-model=“false”
。但是 试图给予

v-model=“!(options.customerdata.showbutton)”
不工作并显示错误。如何做到这一点

<b-form-checkbox v-model="options.customerdata.showbutton" name="logo-display" switch >
</b-form-checkbox>

模型不能是表达式(它必须是对数据/属性的引用)

最简单的方法是定义数据并将其设置为负值。但请注意,在这种情况下,组件初始化后更改customerdata时,模型不会更改

data: {
  return {
    show: !this.options.customerdata.showbutton
  } 
}
如果需要将值存储回选项(或将值绑定到customerdata),还可以将computed属性与setter/getter一起使用

computed {
  show: {
    get () {
      !this.options.customerdata.showbutton
    }

    set (value) {
      this.options.customerdata.showbutton = !value
    }
  }
}
在这两种情况下,都要用

v-model="show"

您能告诉我们错误吗?[vue/valid-v-model]“v-model”指令需要属性值,该属性值作为LHS.eslint-plugin-vueSo有效。我应该将options.customerdata.showbutton存储在var中,并将其取反并绑定到v-model中?@JithinB如果要修改customerdata,我还添加了setter示例back@JithinB所以答案是它取决于您的用例(我不知道你在用复选框值做什么)如果你需要传播它回来,无论如何,这两个建议应该涵盖常见的场景。第一部分工作正常,但存储回值不起作用!如果我打开开关(假为真)并刷新它。它再次显示为fasle!@JithinB它在选项方面工作。customerdata是更新的。但没有人在重新加载后坚持更改以查看它。这是完全不同的情况。(对于它,显然需要在更改时触发API调用)