v-for重新计算index

图片描述

想要序号是1,2,3排列,而不是1,3,4 请问怎么做。尽量不要处理原始数据(因为实际的数据结构复杂,而且很多地方的数据结构都不一样)

阅读 3k
5 个回答

如楼上所述,应该在数据上做处理,再去渲染。

computed: {
  todosFormat: function() {
    return this.todos.filter(function(item) {
      return +item.id !== 7;
    });
  }
}

循环这个东西就行了。

你应该在函数中处理掉数据再去用vue渲染,可以在请求到数据的时候先判断是否有id为7的如果有就从数组中删除掉这项然后再绑定在vue中去做渲染

你这个只有去掉v-if,在created里判断id===7删除这条数据

created:function(){
                    for(i in this.todos){
                        if(this.items[i].id===7){
                            this.items.splice(i,1);
                        }
                    }
                }

可以写一个计算属性,在原数据的基础上进行筛选和修改。
一般来说,模板里面不要有太复杂的逻辑,复杂逻辑应该写在js里。

最好不建议在渲染的时候去作筛选。而是在你生成这段数据的时候就去剔除掉你不需要的数据。在请求拿到数据之后写一个fiter即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题