javascript - vue如何删除数组中的单个数据
大家讲道理
大家讲道理 2017-04-11 09:48:28
0
3
738

我做了一个todolist的demo.

模板中用v-for列出todos中的数据.

            <ol>
                <li v-for="todo in todos" @click="delete">
                    {{todo.label}}
                </li>
            </ol>

数据结构是这个样子:

            data: {
                todos: [
                    {label: 'walking'},
                    {label: 'talking'},

                ]
            }
            

页面是这个样子

我想要当我点击一个todo的时候, 就在todos数据中删除对应的数据. 比如我点击walking, 那么todos中就只剩下talking, 页面自然就更新了. 但是一直找不到合适的方法. 求指导.

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

reply all(3)
Ty80

如果是vue1.0这样写:

<ol>
            <li v-for="todo in todos" @click="delete($index)">
                    {{todo.label}}
            </li>
</ol>

然后:

methods:{
    
    delete:function(index){
        this.todos.splice(index,1);
    }
}

如果是vue2.0这样写:

<ol>
                <li v-for="(todo,index) in todos" @click="delete(index)">
                    {{todo.label}}
                </li>  
</ol>

然后

methods:{
    
    delete:function(index){
        this.todos.splice(index,1);
    }
}
Ty80

可以参考一下官方的demo:
https://vuejs.org/v2/examples...

阿神

你点击的时候需要得到todo的索引,再对todos数组进行
arr.splice(index,1);

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template