所有复选框都显示为已选中。 VueJs VueMaterial

All the checkboxes appear checked. VueJs VueMaterial

我试图只选中一个复选框,但当我选中它时,其余的也都被选中了。为什么会这样?关于这方面的任何类型的文档?

<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'
    }]

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

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

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

然后在您的模板中,通过 Location.id:

引用每个 checkboxes 属性 值
<md-checkbox v-model="checkboxes[Location.id]" class="md-warn">

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

<md-checkbox v-model="Location.selected" class="md-warn">