在Vue.js中,更改数据数组中所有项目的特定属性的值

汤姆·哈兹莱丁

我正在尝试open在中的项目列表上切换v-repeat我只希望一个列表项(最近单击的一项)具有该类open

输出的数据具有“类别”属性,默认情况下为空白字符串。我正在使用它来设置列表项的类,v-repeat如下所示:

<li v-repeat="dataSet"
    v-on="click: toggleFunction(this)"
    class="{{ class }}">
    {{ itemContent }}
</li>

v-on="click: toggleFunction(this)"在每个项目上使用,这使我可以更改特定项目的类,但是如何更改所有其他项目的类?

我当前的点击方法:

toggleFunction: function(item) {
    if (item.class == '') {
        // code to remove the `open` class from all other items should go here.
        item.class = 'open';
    } else {
        item.class = '';
    }
}

我试过使用常规的jQuery函数剥离类:确实删除了类,但不会更改item.class属性,因此,一旦多次单击某项,事情就会变得很奇怪。

我敢肯定,必须有一种简单的方法来解决我所没有看到的问题,而且必须class在数据本身中设置一个属性无论如何都会让人感到不舒服(但是我会为所有可行的解决方案感到满意)。

mcallan83

我只是遇到了同样的问题。我仍在学习Vue,但我使用“ v-class”指令解决了它。使用v-class,只要记录的有效值为true,就会自动将“ open”类添加到列表元素。希望这个JSFiddle帮助。

<ul>
    <li 
        v-repeat="people"
        v-on="click: toggleActive(this)"
        v-class="open: active">{{ name }}
    </li>
</ul>




new Vue({
    el: '#app',
    data: {
        people: [
            {name: 'mike'},
            {name: 'joe',active: true},
            {name: 'tom'},
            {name: 'mary'}
        ]
    },
    methods: {
        toggleActive: function(person) {
            // remove active from all people
            this.people.forEach(function(person){
                person.$set('active',false);
            });
          //set active to clicked person
            person.$set('active',true);
        }
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除所有项目的类并将类添加到 Vue.js 中单击的项目

来自分类Dev

如何在vue中传递和更改数组的索引?

来自分类Dev

更改数组中所有元素的CSS属性

来自分类Dev

如何从 vue 响应中获取所有数组值

来自分类Dev

Javascript / Vue JS-检索对象中所有元素的值

来自分类Dev

拖放后重置所有项目的Vue.js列表顺序

来自分类Dev

更改数组中每个项目的属性?

来自分类Dev

如何更改数组中特定项目的位置?

来自分类Dev

(Vue.js)如何从数据中的数字值数组填充带有选项标签的选择标签?

来自分类Dev

vue.js中的数组属性

来自分类Dev

在Vue.js中渲染具有重复值的数组

来自分类Dev

HTML 属性中的 Vue.JS 数据

来自分类Dev

如何从给定项目更改数组中的所有项目?

来自分类Dev

如何在Vue Cli项目的Vue实例中渲染数据

来自分类Dev

Vue 路由不是在 vue js 中渲染 vue 实例的数据属性

来自分类Dev

vue.js 在直接 css/样式更改和从数组中删除项目时的奇怪行为

来自分类Dev

Vue JS更改一个数组中的数据更改

来自分类Dev

数组中的Vue数组

来自分类Dev

在Vue.js中观看反应性数据的所有属性

来自分类Dev

如何在Vue.js中的代码中更改组件属性的值?

来自分类Dev

Vue.js 更新数组,不重新加载所有数据

来自分类Dev

从 Vue.Js 的下拉列表中获取项目属性

来自分类Dev

在VUE模板中动态传递所有对象的键和值作为HTML属性

来自分类Dev

使用下划线更改数组中所有对象的值

来自分类Dev

使用下划线更改数组中所有对象的值

来自分类Dev

在vue.js中的数组之间移动项目

来自分类Dev

更新 vue js 值

来自分类Dev

如何从 Vue js 中的方法访问数组中的属性?

来自分类Dev

如何选择特定的json数据并将其存储到Vue Js中的数组中?

Related 相关文章

  1. 1

    删除所有项目的类并将类添加到 Vue.js 中单击的项目

  2. 2

    如何在vue中传递和更改数组的索引?

  3. 3

    更改数组中所有元素的CSS属性

  4. 4

    如何从 vue 响应中获取所有数组值

  5. 5

    Javascript / Vue JS-检索对象中所有元素的值

  6. 6

    拖放后重置所有项目的Vue.js列表顺序

  7. 7

    更改数组中每个项目的属性?

  8. 8

    如何更改数组中特定项目的位置?

  9. 9

    (Vue.js)如何从数据中的数字值数组填充带有选项标签的选择标签?

  10. 10

    vue.js中的数组属性

  11. 11

    在Vue.js中渲染具有重复值的数组

  12. 12

    HTML 属性中的 Vue.JS 数据

  13. 13

    如何从给定项目更改数组中的所有项目?

  14. 14

    如何在Vue Cli项目的Vue实例中渲染数据

  15. 15

    Vue 路由不是在 vue js 中渲染 vue 实例的数据属性

  16. 16

    vue.js 在直接 css/样式更改和从数组中删除项目时的奇怪行为

  17. 17

    Vue JS更改一个数组中的数据更改

  18. 18

    数组中的Vue数组

  19. 19

    在Vue.js中观看反应性数据的所有属性

  20. 20

    如何在Vue.js中的代码中更改组件属性的值?

  21. 21

    Vue.js 更新数组,不重新加载所有数据

  22. 22

    从 Vue.Js 的下拉列表中获取项目属性

  23. 23

    在VUE模板中动态传递所有对象的键和值作为HTML属性

  24. 24

    使用下划线更改数组中所有对象的值

  25. 25

    使用下划线更改数组中所有对象的值

  26. 26

    在vue.js中的数组之间移动项目

  27. 27

    更新 vue js 值

  28. 28

    如何从 Vue js 中的方法访问数组中的属性?

  29. 29

    如何选择特定的json数据并将其存储到Vue Js中的数组中?

热门标签

归档