将复选框的字符串转换为布尔值



我使用v-model显示选中/未选中的复选框:

<template v-for="(item, index) in myFields">
<v-checkbox
v-model="myArray[item.code]"
:label="item.name"       
/>
</template>

当我从API获得true或false值时,它可以正常工作。但现在我得到了字符串"true"或";false"我的复选框总是被选中的。如果我把代码改成:

v-model="Boolean(myArray[item.code])"

我得到了错误:

'v-model'指令要求属性值为LHS

我该如何解决这个问题?

尝试Boolean(myArray[item.code])不会工作,因为字符串'false'true。所以Boolean('false')返回true

你应该使用myArray[item.code] !== 'false'
'false'将返回false,除false以外的其他字符串将返回true

编辑:您需要将myArray更改为布尔数组,如
myArray.map((element) => element !== 'false')

那么这段代码就可以工作了

<template v-for="(item, index) in myFields">
<v-checkbox
v-model="myArray[item.code]"
:label="item.name"       
/>
</template>

相关内容

  • 没有找到相关文章

最新更新