2017-10-30 6 views
2

これはこれよりもやや良い方法で構築できますか?私はforループを考えていましたが、それを一度追加してから、要素[1] == "why_iclei"なら何が起こるかを尋ねることができますか?それとも何とかそれをよりクリーンな方法で置くのですか?このパフォーマンスは賢明で速いですか?この小枝コードのパフォーマンスは十分に速く、賢明ですか?

    <li class=" "> 
        <a href="#">why iclei</a> 
        <ul class="dropdown"> 
         {% for element in elements %} 
          {% if element[1] == "why_iclei" %} 
           {% if element[2] == 1 %} 
            <li><a href="#">{{ element[0] }}</a></li> 
           {% endif %} 
          {% endif %} 
         {% endfor %} 
        </ul> 
       </li> 
       <li> 
        <a href="#">our work</a> 
        <ul class="dropdown"> 
         {% for element in elements %} 
          {% if element[1] == "our_work" %} 
           {% if element[2] == 1 %} 
            <li><a href="#">{{ element[0] }}</a></li> 
           {% endif %} 
          {% endif %} 
         {% endfor %} 
        </ul> 
       </li> 

これは私のコードで約20回ループとまったく同じです。何とか一度入れて、そこから必要な値をすべて得ることができますか?

答えて

1

あなたの変数だけ出力1つのループにし、マークアップで

{% set icleiList = '' %} 
{% set our_workList = '' %} 
{% for element in elements %} 
    {% if element[1] == "why_iclei" and element[2] == 1 %} 
     {% set icleiList = icleiList ~ '<li><a href="#">' ~ element[0] ~'</a></li>' %} 
    {% elseif element[1] == "our_work" and element[2] == 1 %} 
     {% set our_workList = our_workList ~ '<li><a href="#">' ~ element[0] ~'</a></li>' %} 
    {% endif %} 
{% endfor %} 

<li class=" "> 
    <a href="#">why iclei</a> 
    <ul class="dropdown"> 
     {{ icleiList|raw }} 
    </ul> 
</li> 
<li> 
    <a href="#">our work</a> 
    <ul class="dropdown"> 
     {{ our_workList|raw }} 
    </ul> 
</li> 
+1

ニース、おかげであなたのリスト項目を作成します。私はあなたの答えを試みるつもりです、そしてすべてがうまくいくなら、私はあなたの答えを私の答えとします。 ありがとうM Khalid Junaid。 – FortuneSoldier

+1

ありがとう、それは動作します.. – FortuneSoldier

+1

これは本当に多くのロジックをビューに持つことは適切ではありません。コントローラ内の配列を更新してから、ビューに渡す必要があります。 – nerdlyist

関連する問題