【问题标题】:Creating select all checkbox in VueJS trough loop在 VueJS 槽循环中创建全选复选框
【发布时间】:2021-05-20 12:06:01
【问题描述】:

我创建了一些通过循环显示为表格的数据。 该代码看起来不错,但是在我的方法中我收到错误“未定义页面”。 有谁知道我如何定义它?

表:

<tr v-for="page in pages" v-bind:key="page">
                <td>
                  <input type="checkbox" v-model="pageIds" @click="select" :value="page.id">
                </td>
                <td>{{page.name}}</td>
                <td>
                  <v-tooltip bottom>
                    <template v-slot:activator="{ on, attrs }">
                      <span v-bind="attrs" v-on="on"
                        ><v-icon class="icon delete">mdi-delete</v-icon></span
                      >
                    </template>
                    <span>Delete Page</span>
                  </v-tooltip>
                </td>
              </tr>

方法:

    <script>
export default {
  data: () => ({
    pages: [
      {"id":"/","name":"/"},
      {"id":"/index","name":"/index"},
      {"id":"/about-us","name":"/about-us"}
    ],
    selected: [],
    allSelected: false,
    pageIds: []
  }),

  methods: {
        selectAll: function() {
            this.pageIds = [];

            if (this.allSelected) {
                for (page in this.pages) {
                    this.pageIds.push(this.pages[page].id.toString());
                }
            }
        },
        select: function() {
            this.allSelected = false;
        }
    }
};
</script>

【问题讨论】:

    标签: loops vue.js methods undefined


    【解决方案1】:

    在您的代码中更改此项。它会解决你的错误

    来自

    v-for="page in pages" v-bind:key="page"
    

    v-for="(page, index) in pages"
    v-bind:key="index"
    

    【讨论】:

    • 我实际上只是在 if (this.allSelected) { for (const page in this.pages) { this.pageIds.push(this.pages[page].id.toString() ); } }
    • 并且它起作用了,当我按下全选复选框时,所有都被取消选中。它的工作方式相反哈哈
    • @DanielRadosa haha​​ah selectAll 按钮不存在。但我认为你没有正确切换 this.allSelected :D 无论如何,你也可以使用 for(var page in this.pages) 可能是由于 vuejs 的事情。但简单的 for(page in this.pages) 也应该可以工作。
    • 怎么selectAll按钮不存在了?我尝试更改 const 和其他东西,但它一直在做同样的事情:D
    猜你喜欢
    • 2018-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多