Vue.js中v-if的一个小问题?

<table v-if="books.length==0">

</table>
<h2 v-else>购物车是空的</h2>
判断vue对象中data的books数组长度为0时,就隐藏该table,但是打开浏览器直接就全部隐藏了,而不是等我一个个删除完里面的元素再隐藏
换成 <table v-if="books.length">这样就显示正常
v-if后面不能跟比较运算符?

结果相反了,具体如下:

v-if="books.length == 0"

当books数组不为时,books.length == 0 布尔值为false,也就是v-if='false',table是不显示的;

v-if="books.length"

当books数组不为时,books.length布尔值为true,也就是v-if='true',table是显示的;

当你删除元素后,books为空时,books.length布尔值为false,也就是v-if='false',table是隐藏的;

以上是解答过程,希望对您有帮助!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-22
v-if判断的本质就是布尔值的true和false,只要能满足条件是可以有运算符的。你这个是逻辑问题,假如books.length本身是0,books.length == 0得到的布尔值是true,而0的布尔值是false,你两个判断的依据不同,得到的结果自然不一样。追问

是我true跟false搞反了

本回答被提问者采纳
第2个回答  2020-07-22
判断条件写错,应为:
<table v-if="books.length>0">
...
</table>
<h2 v-else>购物车是空的</h2>

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网