v-for v-if组合的Vue方法调用未返回值

时间:2018-10-04 17:29:47

标签: javascript vue.js

所以我在html中有这段代码,该代码在数组上执行v-for循环,然后对于每个条目调用带有参数的方法,该方法使用v-if仅显示option标记,因为它返回true。

这是html代码段部分:

....
<img class="resize" th:src="|cid:${logoIcon}|" alt="Test">
....
<td class="someCssClass"> <img th:src="|cid:${phoneIcon}|" alt="phone"> </td>
<td class="someCssClass"> <img th:src="|cid:${emailIcon}|" alt="email"> </td>
....

这是Vue脚本区域中的方法:

<template v-for="a in agencies">
<option v-if="agencyCk(a) === true" :value="a">${a}</option>
</template>

目前,它似乎全部返回false。

1 个答案:

答案 0 :(得分:2)

agencyCk函数未明确返回任何内容。因此,该函数的返回值为undefined,它被解释为false。

要了解原因,请仔细查看if语句,它基本上可以归结为以下内容:

if (Object.keys(...).find(...));

它没有身体。您编写的return语句用于find函数,而不用于agencyCk函数。

我认为您想要的是这样的东西

return Object.keys(...).find(...) != undefined