vue.js:跟踪当前选中的行

标签 vue.js

我有一个简单的表格,我想在其中处理点击元素:

<div class="row"
     v-bind:class="{selected: isSelected}"
     v-for="scanner in scanners"
     v-on:click="scannerFilter">

    {{scanner.id}} ...
</div>

JS:

    new Vue({
        el: "#checkInScannersHolder",
        data: {
            scanners: [],
            loading: true
        },
        methods: {
            scannerFilter: function(event) {
                // isSelected for current row
                this.isSelected = true;
                // unselecting all other rows?
            }
        }
    });

我的问题是在单击并选择某行时取消选择所有其他行。

此外,我很想知道,是否可以通过回调函数的某个变量访问 scanner 而不是使用 this 因为我可能需要访问当前上下文。

最佳答案

问题是您只有一个变量 isSelected,您希望使用它来控制所有行。更好的方法是使用变量:selectedScanner,并将其设置为选定的扫描仪并在 v-bind:class 中使用它,如下所示:

<div class="row"
     v-bind:class="{selected: selectedScanner === scanner}"
     v-for="scanner in scanners"
     v-on:click="scannerFilter(scanner)">

    {{scanner.id}} ...
</div>

JS

new Vue({
    el: "#checkInScannersHolder",
    data: {
        scanners: [],
        selectedScanner: null,
        loading: true
    },
    methods: {
        scannerFilter: function(scanner) {
            this.selectedScanner = scanner;
        }
    }
});

关于vue.js:跟踪当前选中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42275740/

相关文章:

javascript - 检查变量是否包含 img 标记名

javascript - Vue.js Spread 运算符而不是 Vue.set/Vue.delete

javascript - 无法调用 beforeDestroy Hook 中定义的回调

javascript - Vue 3 在设置中使用函数

vue.js - Vue 如何在具有父级和自身的组件上设置属性? [警告]

vue.js - 如何使路由器链接使用父 v-on :click completely

vue.js - 在 vue3 中通过 props 传递的组件

typescript - 带有 webpack 别名的 Vue-typescript 错误,找不到路径

javascript - Vue UI 不会随着状态变化而更新,直到我将鼠标悬停在它上面

javascript - 如何在vuejs中状态更改时验证条件