Ionic Vue 复选框
Ionic Vue Checkboxes
我有以下问题:
我正在使用 Ionic Vue 和 VueX Store 从 API 中保存我的数据。
现在我已经设置了一个数组,其中包含条目的ID,应该检查或不检查。
因为我不应该修改 API-Model class,所以我将选中条目的 ID 保存在我的 VueX Store 中的单独数组中,我会根据需要更新它。
现在我正在尝试根据该数组选中/取消选中复选框。
我通过添加 v-model = "checkedVehicles.included(vehicle.vehicle_id)" 来尝试,但我得到的只是一个错误:
'v-model' directives require the attribute value which is valid as LHS vue/valid-v-model
这是带有复选框的部分,希望这就是您所需要的:)
<IonItem v-for="vehicle in vehicleList" v-bind:key="vehicle.vehicle_id">
<IonLabel>
<h2>{{ vehicle.manufacturer }} {{ vehicle.model }}</h2>
<p>{{ vehicle.display_name }}</p></IonLabel>
<IonCheckbox slot="end"
v-model="checkedVehicles.includes(vehicle.vehicle_id)"
@click="checkIfAllDeselected"
@update="this.updateCheckboxOnClick(vehicle.vehicle_id)"/>
</IonItem>
checkedVehicles 数组被初始化为 String[]。
还尝试使用一个函数,returns true 或 false,具体取决于 checkedVehicles Array 是否包含 ID,但这也会产生相同的错误
其他向对应数组添加或删除整体的功能工作正常,已经检查过了。只有复选框没有按预期工作。
有人知道我做错了什么吗?
这很明显,因为我们无法在 v-model 中评估条件。我们一般给v-model绑定一个变量。
例如:
假设您在数据中有一个名为 vehicle 的属性。
data() {
return {
Vehicle list: [{
checked: true,
manufacturer: '',
display_name: '',
vehicle_id: ''
},
{
checked: true,
manufacturer: '',
display_name: '',
vehicle_id: ''
},
]
}
那么你可以绑定为
<IonItem v-for="vehicle in vehicleList" v-bind:key="vehicle.vehicle_id">
<IonLabel>
<h2>{{ vehicle.manufacturer }} {{ vehicle.model }}</h2>
<p>{{ vehicle.display_name }}</p></IonLabel>
<IonCheckbox slot="end"
v-model="vehicle.checked"
@click="checkIfAllDeselected"
@update="this.updateCheckboxOnClick(vehicle.vehicle_id)"/>
</IonItem>
综上所述,能存值的变量只能在v-model中使用
我有以下问题:
我正在使用 Ionic Vue 和 VueX Store 从 API 中保存我的数据。 现在我已经设置了一个数组,其中包含条目的ID,应该检查或不检查。
因为我不应该修改 API-Model class,所以我将选中条目的 ID 保存在我的 VueX Store 中的单独数组中,我会根据需要更新它。 现在我正在尝试根据该数组选中/取消选中复选框。 我通过添加 v-model = "checkedVehicles.included(vehicle.vehicle_id)" 来尝试,但我得到的只是一个错误:
'v-model' directives require the attribute value which is valid as LHS vue/valid-v-model
这是带有复选框的部分,希望这就是您所需要的:)
<IonItem v-for="vehicle in vehicleList" v-bind:key="vehicle.vehicle_id">
<IonLabel>
<h2>{{ vehicle.manufacturer }} {{ vehicle.model }}</h2>
<p>{{ vehicle.display_name }}</p></IonLabel>
<IonCheckbox slot="end"
v-model="checkedVehicles.includes(vehicle.vehicle_id)"
@click="checkIfAllDeselected"
@update="this.updateCheckboxOnClick(vehicle.vehicle_id)"/>
</IonItem>
checkedVehicles 数组被初始化为 String[]。 还尝试使用一个函数,returns true 或 false,具体取决于 checkedVehicles Array 是否包含 ID,但这也会产生相同的错误 其他向对应数组添加或删除整体的功能工作正常,已经检查过了。只有复选框没有按预期工作。
有人知道我做错了什么吗?
这很明显,因为我们无法在 v-model 中评估条件。我们一般给v-model绑定一个变量。 例如: 假设您在数据中有一个名为 vehicle 的属性。
data() {
return {
Vehicle list: [{
checked: true,
manufacturer: '',
display_name: '',
vehicle_id: ''
},
{
checked: true,
manufacturer: '',
display_name: '',
vehicle_id: ''
},
]
}
那么你可以绑定为
<IonItem v-for="vehicle in vehicleList" v-bind:key="vehicle.vehicle_id">
<IonLabel>
<h2>{{ vehicle.manufacturer }} {{ vehicle.model }}</h2>
<p>{{ vehicle.display_name }}</p></IonLabel>
<IonCheckbox slot="end"
v-model="vehicle.checked"
@click="checkIfAllDeselected"
@update="this.updateCheckboxOnClick(vehicle.vehicle_id)"/>
</IonItem>
综上所述,能存值的变量只能在v-model中使用