为了账号安全,请及时绑定邮箱和手机立即绑定

仅显示具有某些属性的元素 Vue JS

仅显示具有某些属性的元素 Vue JS

紫衣仙女 2022-12-02 16:56:24
我正在开发一个 Vue 应用程序,我有一个这样的电影列表:movies [  {name: 'spider-man', id: 3},  {name: 'thor'},  {name: 'x-men', id: 7}]这是我的模板<ul> <li v-for="movie in movies" :key="movie.name">{{movie.name}}</li></ul>我只想展示拥有 ID 的电影,在这种情况下,不应该展示雷神。我尝试过使用 v-if,但出现此错误:“'v-for' 指令中的 'movies' 变量应替换为返回过滤数组的计算属性。你不应该将 'v-for' 与'v-如果'”。谢谢,希望你能帮助我!
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

计算属性来拯救:


data: () => ({

  movies: [

   {name: 'spider-man', id: 3},

   {name: 'thor'},

   {name: 'x-men', id: 7}

  ]

})

...

computed: {

  moviesWithId() {

    return this.movies.filter(movie => movie.id)

  }

}

...

在你的模板中


<ul>

  <li v-for="movie in moviesWithId" :key="movie.name">{{movie.name}}</li>

</ul>


查看完整回答
反对 回复 2022-12-02
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

或者你可以添加条件来渲染你的 li 标签,比如 v-show="movie.id"

或者像这样过滤你的数据集:

<li v-for="movie in movies.filter(movie => movie.id)" :key="movie.name">{{movie.name}}</li>



查看完整回答
反对 回复 2022-12-02
  • 2 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信