Vue v-for嵌套数据渲染问题

Posted Rexcnblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue v-for嵌套数据渲染问题相关的知识,希望对你有一定的参考价值。

Vue v-for嵌套数据渲染问题

问题描述:

由于在获取商品子分类的时候,同时需要获取子分类下的商品,那么多层的列表渲染就只能是第一层好用

问题原因:

vue在处理多层的渲染的时候,不能直接用等号赋值出来的数据,只能是用官方提供的$set方法

解决办法:

在用异步请求数据的时候,返回的时候直接用$set方法给属性赋值。

function ProductTypeSubList(Id) {
    var url = globalUtils.globalHomeUrl + urlConstants.Product.GetProTypeList + "?CustomerID=0&Id=" + Id;
    Vue.http.get(url)
        .then((response) => {
            if (response.data.Code == 0) {
                var ProListUrl = globalUtils.globalHomeUrl + urlConstants.Product.GetProList + "?CustomerID=0&ProTypeId=";
                var ProductTypeSubList = response.data.Data.L_ProTypeList;
                Assort.$set(Assort, "ProductTypeSubList",  ProductTypeSubList);
                ProductTypeSubList.forEach(function(element) {
                    var ProList = new Array();
                    Vue.http.get(ProListUrl + element.Id)
                        .then((response) => {
                            if (response.data.Code == 0) {
                                Assort.$set(element, "ProList", response.data.Data.L_ProList);
                            }
                        });
                }, this);
            } else {
                Assort.$set(Assort, "ProductTypeSubList",  []);
            }
        });
}

 

以上是关于Vue v-for嵌套数据渲染问题的主要内容,如果未能解决你的问题,请参考以下文章

Vue 无法更改嵌套 v-for 中的属性

如何使用 Vue 和 Vue Resource 修改嵌套的 JSON 数据

Vue.js - v-for 不渲染 api 调用响应数据

Vue中使用v-for渲染数据为何要添加key属性?(原理及作用)

Vue-Vue列表渲染v-for

七vue中v-for有时候对页面不会重新渲染,数组变化后如何到渲染页面