两层v-for循环时,控制内部元素v-show为false时,如何使外层也为false?

<div v-for="(item,index) in out">
    <h1 v-for="(good,index) in item.goods" v-show="good.count>0">{{good.name}}</h1>
</div>

当good.count>0时渲染h1,所有good的count都<0,如何控制外层的div也不显示?

 out:[
    {
        goods:[
            {name:"test1",count:0},
            {name:"test2",count:0},
            {name:"test3",count:0},
        ]
    },
    {
        goods:[
            {name:"test3",count:0},
            {name:"test4",count:0},
            {name:"test5",count:0},
        ]
    }
]
阅读 3.1k
1 个回答
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="box">
            <div v-for="(item,index) in out" v-show="thisshow(item)">
                    <h1 v-for="(good,index) in item.goods" v-show="good.count>0">{{good.name}}</h1>
                </div>
    </div>
   <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script>

var app=new Vue({
    el:'#box',
    data:{
        out:[
    {
        goods:[
            {name:"test1",count:0},
            {name:"test2",count:0},
            {name:"test3",count:0},
        ]
    },
    {
        goods:[
            {name:"test3",count:0},
            {name:"test4",count:0},
            {name:"test5",count:0},
        ]
    }
]
    },
    methods: {
        thisshow:function(item){
            var flag = false;
            item.goods.map(function(s){
                if(s.count>0){
                    flag = true;
                };
            });
            return flag;
        }
    }
});
    </script>
</body>
</html>
推荐问题