我正在开展一个智能项目,我正在使用if
条件。
{if $userroleid neq 12 || $userroleid neq 13 || $userroleid neq 14 }
<a href="{$v.feature_url}" class="re-upload"> Re-upload</a>
{else}
<a href="{$v.feature_url}" class="re-upload"> View</a>
{/if}
我尝试了上面的代码。
我的假设:如果$userroleid
等于12或13或14,则应显示&#34;查看&#34; ,否则应该显示&#34;重新上传&#34; 。
现在显示&#34;重新上传&#34;如果$userroleid
等于12。
我做错了什么?
我看到以下问题对我没有帮助。
答案 0 :(得分:5)
if
将始终 true
- 任何号码将至少不等于其中两个。包括12,不等于13或14.因为你使用||
,这就足够了。
你想要扭转事物并使用eq
:
{if $userroleid eq 12 || $userroleid eq 13 || $userroleid eq 14 }
<a href="{$v.feature_url}" class="re-upload"> View</a>
{else}
<a href="{$v.feature_url}" class="re-upload"> Re-upload</a>
{/if}
答案 1 :(得分:2)
使用&&
,||
运算符的条件将始终为真。
{if $userroleid != 12 && $userroleid != 13 && $userroleid != 14 }
您也可以使用in_array
功能:
{if !in_array($userroleid, array(12, 13, 14))}
答案 2 :(得分:1)
根据您所描述的所需输出,我认为您想要的是eq
而不是neq
:
{if $userroleid eq 12 || $userroleid eq 13 || $userroleid eq 14 }
这只是检查你的布尔逻辑的问题。使用原始行{if $userroleid neq 12 || $userroleid neq 13 || $userroleid neq 14 }
,这将始终等同于true。