0

我试图只选中一个复选框,但是当我选中它时,其余的也会被选中。为什么会这样?有任何关于此的文档吗?

<md-layout v-for="Location in Locations" :key="Location.id">
  <md-checkbox v-model="checkbox" class="md-warn">{{ Location.city }}</md-checkbox>
</md-layout>
data () {
  return {
    checkbox: false,
    Locations: [{
      id: 1,
      city: '1'
    }, {
      id: 2,
      city: '2'
    }, {
      id: 3,
      city: '3'
    }, {
      id: 4,
      city: '4'
    }, {
      id: 5,
      city: '5'
    }, {
      id: 6,
      city: '6'
    }]
4

1 回答 1

2

由于v-modelfor each 复选框是变量checkbox,因此该变量的值被绑定到每个组件。您希望v-model每个复选框组件都有自己的变量来引用。

您可以将您的checkbox布尔值变成一个checkboxes对象,每个位置 ID 都有索引键:

data() {
  return {
    checkboxes: {
      1: false,
      2: false,
      3: false,
      4: false,
      5: false,
      6: false,
    },
    ...

然后在您的模板中,checkboxes通过以下方式引用每个属性值Location.id

<md-checkbox v-model="checkboxes[Location.id]" class="md-warn">

或者,如果您不介意影响Locations数据属性,您可以简单地绑定到selected每个位置的属性:

<md-checkbox v-model="Location.selected" class="md-warn">
于 2017-05-30T13:22:07.470 回答