私はLiquidでどのように再帰を行うのかを理解しようとしてきました。メニューのレンダリングをユーザーが完全に制御できるようにしたいアプリがあります。ただし、メニューはツリーによって定義されるため、Liquidでは再帰関数が必要です。
どうすればいいですか?いくつかの読書をした後、私は私がこのようにそれに取り組むだろうと思っていました:
含む
私はincludeこのように使うことを考えていました:
<ul id='site_nav' class='nav'>
{{ include 'menu_item' with menu_items }}
</ul>
そしてmenu_itemの部分はこれです:
<li id='{{menu_item.dom_id}}' class='{{menu_item.css_menu_class}}'>
{{ menu_item.name }}
<ul>
{{ include 'menu_item' with menu_item.children }}
</ul>
</li>
ただし、ユーザーが編集できるため、Liquidをハックして、データベースからパーシャルをロードする必要があります。それは勉強にもっと時間がかかるので、私は最初に誰かが以前にこの問題に取り組んだことがあるかどうか尋ねたいと思いました。
- 以前にこの問題に取り組んだことがある場合、どのようにして再帰的に何かをレンダリングし、ユーザーが編集できるようにしましたか?
- これまでにこれに取り組んだことがない場合、私がどのように取り組むことをお勧めしますか?私が上で詳述した方法は?
前もって感謝します!