javascript - 创建 handlebars.js 子菜单

标签 javascript jquery handlebars.js

我需要创建一个带有 Handlebars 的菜单,菜单中的一些选项有自己的子选项,我已经为此苦苦挣扎了大约 1 小时。

模板的 JSON 对象是

var menuJSON = [
{  
   name : "Schedule", 
   url: "index.html?lang=en", 
   icon: "fa fa-calendar-o",       
   state:"inactive"
},
{ 
  name : "Clients",  
  url: '#', 
  icon: "fa fa-users", 
  subs : ['Yours', 'Company'], 
  state:"inactive", subsTargetID: "collapse-menuC"
}
];

到目前为止,我的模板看起来是这样的:

<div class="sidebarMenuWrapper" id="menuOpts">
    <script id="optsMenuTemp" type="x-handlebars-template">
        <ul class="list-unstyled">
        {{#each this}}
                <li class="{{state}}">
                    <a href="{{url}}"><i class="{{icon}}"></i>
                        <span>{{name}}</span>
                    </a>
                </li>
        {{/each}}
        </ul>
    </script>
</div>

这是带有子菜单的选项的 html:

<li class="hasSubmenu">
    <a href="#"  data-toggle="collapse" data-target="#collapse-menuD"><i class="fa fa-folder-open-o"></i>
        <span>{{documents.name}}</span>
    </a>
    <ul class="collapse" id="collapse-menuD">
        <li>
          <a href="index.html?lang=en&amp;top_style=inverse">
            <i class= "fa fa-street-view"></i>
            <span>{{documents.sub1}}</span>
          </a>
        </li>
        <li>
            <a href="index.html?lang=en&amp;top_style=default"><i class="fa fa-clipboard"></i>
                <span>{{documents.sub2}}</span
            </a>
        </li>
    </ul>
</li>

我在正确使用 if 语句时遇到问题,我现在真的需要一些帮助。

最佳答案

试试下面的代码

<ul class="list-unstyled">
{{#each this}}
        <li class="{{state}}"><a href="{{url}}"><i class="{{icon}}"></i><span>{{name}}</span></a>
        {{#if subs}}
          <ul class="collapse" id="collapse-menuD">
                   {{#each subs}}
                          <li><a href="index.html?lang=en&amp;top_style=inverse"><i class= "fa fa-street-view"></i><span>{{this}}</span></a>
                        </li>

{{/each}}
                    </ul>
        {{/if}}
        </li>
{{/each}}
</ul>

http://handlebarsjs.com/builtin_helpers.html

关于javascript - 创建 handlebars.js 子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137523/

相关文章:

javascript - 如何让 jQuery 与 Underscore 一起使用?

javascript - 下划线中的部分模板(就像在 Handlebars 中一样)?

javascript - 如何检测页面是否在顶部?

javascript - 如何在javascript中使用证书的私钥对消息进行签名

jQuery - 父级 "this"

javascript - 为什么折线图中 y 轴值从实际点向上移动?

javascript - Ember 更新数组中的对象

jquery - 处理多个ajax请求和模板结果

javascript - Aurelia 组成元素 : childContainer is not defined

javascript - jQuery .focusout() 也当 .keyup() 出现在 Firefox 33.1 中时