我使用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.map((element) => element !== 'false')
那么这段代码就可以工作了
<template v-for="(item, index) in myFields">
<v-checkbox
v-model="myArray[item.code]"
:label="item.name"
/>
</template>