【发布时间】:2020-04-13 17:39:15
【问题描述】:
我使用 Vue,我有一个变量。当变量有值时,我会显示一个图像 (pic1)。
当变量没有值(=empty)时,我会显示另一个图像(pic2)。
我的代码...
<template v-for="(item, index) in items">
<img v-if="item.var" v-bind:src="'/images/pic1'">
<img v-else v-bind:src="'/images/pic2'">
<img v-if="item.var.length > 0" v-bind:src="'/images/pic1.jpg'">
<img v-if="item.var.length == 0" v-bind:src="'/images/pic2.jpg'">
</template>
我基本上尝试了 2 个独立的选项:
v-else 不起作用,它只显示了带有 item.var 的帖子(丢弃了其他带有空 item.var 的帖子)
使用 .length - 根本不起作用
如何让它发挥作用?
【问题讨论】:
-
您确实需要键入图像元素。您的
v-for也没有所需的in variable部分,这应该会导致编译错误。除此之外,我希望第一个选项可以工作,但是在不知道item.var中的内容的情况下,我无法真正告诉您出了什么问题。您是否尝试过记录您正在循环的任何变量以查看其中的内容? -
我认为问题在于您没有完整的
v-for指令语句。应该是v-for="(item, index) in items或任何你的 items 数组被调用。否则,key组中的每个项目都应该有一个key属性,但这不会导致初始渲染出现问题。这是一个示例代码笔,可能会让您朝着正确的方向前进:codepen.io/mcmillenb/pen/yLYNrqN -
尝试
v-if="!item.var.length > 0"作为第二个选项 -
嘿@Rju,显示你的项目列表它包含什么?
标签: javascript vue.js vuejs2