Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 类型3液体elseif带&&;条件_If Statement_Typo3_Fluid - Fatal编程技术网

If statement 类型3液体elseif带&&;条件

If statement 类型3液体elseif带&&;条件,if-statement,typo3,fluid,If Statement,Typo3,Fluid,我正在尝试使此代码正常工作: <f:if condition="{item.spacer} || {item.current}"> <f:then> <li class="{f:if(condition:item.current, then:'nav-item active')}{f:if(condition:item.spacer, then:'nav-item spacer')}"> <f:render partial="Na

我正在尝试使此代码正常工作:

<f:if condition="{item.spacer} || {item.current}">
  <f:then>
    <li class="{f:if(condition:item.current, then:'nav-item active')}{f:if(condition:item.spacer, then:'nav-item spacer')}">
      <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
  </f:then>
  <f:else if="{item.children} && {item.active}">
    <li class="nav-item dropdown active">
      <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
  </f:else>
  <f:else if="{item.children}">
    <li class="{f:if(condition:item.children, then:'nav-item dropdown')}">
      <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
  </f:else>
  <f:else if="{item.active}">
    <li class="{f:if(condition:item.active, then:'nav-item active')}">
      <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
  </f:else>
  <f:else>
    <li class="nav-item">
      <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
  </f:else>
</f:if>

  • li标记随后在父部分中关闭。唯一不起作用的是第一个条件中的组合条件。尽管item.children和item.active为true,但只呈现由item.active组成的条件。我做错了什么


    谢谢,Jonathan活动菜单项的当前值为1,活动值为1。在第一个If条件中,选中current,如果=1,则执行以下“then”。在这之后,其他的都没有被检查,因此,它不起作用。由于我不需要
    {item.spacer}|{item.current}
    ,因此此代码适用于我:

    <f:if condition="{item.children} && {item.active}">
    <f:then>
      <li class="nav-item dropdown active">
        <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
    </f:then>
    <f:else if="{item.children}">
      <li class="nav-item dropdown">
        <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
    </f:else>
    <f:else if="{item.active}">
      <li class="nav-item active">
        <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
    </f:else>
    <f:else if="{item.spacer}">
      <li class="nav-item spacer">
        <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
    </f:else>
    <f:else>
      <li class="nav-item">
        <f:render partial="Navigation/Elements/Link" arguments="{item: item}"/>
    </f:else>
    </f:if>
    
    
    

  • {item.children}
    告诉你什么?而且,尽管它没有解决您的问题,但您可以在这里省略许多if语句,例如:
  • 的输出是一个包含页面子页面的数组。我知道有些if语句是不必要的,我在其中还有一些,没有删除它。我在我的环境中测试了它,没有错误。您是否可以改进“{item.children}&&!{item.active}”和“!{item.children}&&{item.active}”的else if条件?这更安全一些,因为实际上在您的案例中,{item.children}&{item.active}和{item.children}都是正确的。所以顺序很重要。也许这就解决了?这对我不起作用。我现在也试着把它放在末尾,但是没有什么区别。当我把
    {item.children}&{item.active}
    放在第一个if条件中时,它就工作了。