vue.js – 如果值为null,则跳过对象项

前端之家收集整理的这篇文章主要介绍了vue.js – 如果值为null,则跳过对象项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在vue js中有一个嵌套for … in循环.我想要的是,如果元素的值为null,则跳过元素.这是HTML代码
<ul>
    <li v-for="item in items" track-by="id">
        <ol>
            <li v-for="child in item.children" track-by="id"></li>
        </ol>
    </li>
</ul>

null元素可以同时出现在item和item.children对象中.

例如:

var data = {
   1: {
      id: 1,title: "This should be rendered",children: {
          100: {
              id: 100,subtitle: "I am a child"
          },101: null
      }
   },2: null,3: {
       id: 3,title: "Should should be rendered as well",children: {}
   }
};

使用该数据数据[1].不应该呈现.children [101],并且如果数据[1] .children [100]变为空,则应该从列表中省略它.

附:我知道这可能不是表示数据的最佳方式,但我不负责任:)

解决方法

编辑:实际上,一个简单的v-if可能会起作用:
<li v-for="item in items" v-if="item !== null" track-by="id">

试试看.如果没有,请执行此操作:

您可以为其添加过滤器(在App实例之前的main.js中):

Vue.filter('removeNullProps',function(object) {
  // sorry for using lodash and ES2015 arrow functions :-P
  return _.reject(object,(value) => value === null)
})

然后在模板中:

<li v-for="item in items | removeNullProps" track-by="id">
    <ol>
        <li v-for="child in item.children | removeNullProps" track-by="id"></li>
    </ol>
</li>
原文链接:https://www.f2er.com/js/158908.html

猜你在找的JavaScript相关文章