我有一个如下所示的输入字段:
<tr v-for="(item, index) in collection">
...
<input
type="checkbox"
v-model="item.activated"
@change="toggleSwitch(item.resource_url, 'activated', item)">
>
...
</tr>
这collection是一个包含多个键的数组,activated 是其中之一。activated等于1或0当数据来自 mysql 数据库时。问题在于,在这种情况下,输入字段始终设置为 true,即使activated等于 1 或 0。
现在,我尝试像这样编写 v-model 来解决这个问题:
v-model="!!+item.activated"
通过添加,!!+我会将整数值转换为布尔值并使用它。这解决了问题,但又产生了另一个问题。我这样做遇到的另一个问题是,当我尝试更改检查的输入时,出现错误:
[Vue warn]: Cannot set reactive property on undefined, null, or primitive value: false
admin.js:120238 TypeError: Cannot use 'in' operator to search for 'activated' in false
该toggleSwitch方法如下所示:
toggleSwitch: function toggleSwitch(url, col, row) {
var _this8 = this;
axios.post(url, row).then(function (response) {
_this8.$notify({ type: 'success' });
}, function (error) {
row[col] = !row[col];
_this8.$notify({ type: 'error' });
});
},
我是 Vue.js 新手,知道如何调试它以及我的问题来自哪里?我很乐意提供任何其他信息。
浮云间
慕无忌1623718
相关分类