【问题标题】:How can I dynamically generate a multi-level dropdown menu with angular?如何动态生成带角度的多级下拉菜单?
【发布时间】:2013-06-18 19:58:06
【问题描述】:

我使用引导程序制作了一个带有多个复选框的下拉菜单(请参阅http://jsfiddle.net/rxdazn/ryzJb/3/)。此下拉菜单将介绍在同一张图表上绘制多个图表(“度量”)+ 多个选项(对数刻度等)的可能性。

值列表(对应于“度量”)将存储在 json 对象中。 目前,我只是使用单选(用户只能绘制 1 个图表,没有图表类型或选项):

<select ng-model="measure" ng-options="facet.path as facet.name for facet in station.facet_groups[0].facets"></select>

如何才能最好地处理每种度量类型将具有相同子菜单的事实?
我应该更改我的 HTML 吗?我应该为&lt;input&gt; id 属性动态生成值吗?

<!-- graph type -->
<li class="dropdown-submenu"> <a href="#">Graph type</a>

    <ul class="dropdown-menu">
        <li>
            <input type="checkbox" id="line" name="graph" value="line">
            <label for="line">line</label>
        </li>
        <li>
            <input type="checkbox" id="dot" name="graph" value="dot">
            <label for="dot">dot</label>
        </li>
    </ul>

【问题讨论】:

    标签: javascript html angularjs


    【解决方案1】:

    由于id 在页面上必须是唯一的,因此您绝对应该动态生成它们;另外,您可能还想在input 元素中生成name 属性,但这完全取决于您的用例。根据你的小提琴,我认为你可以像这样生成你的菜单:

    <ul id="menu">
        <li class="dropdown-submenu" ng-repeat="facet in facets"> <a href="#">{{facet.name}}</a>
    
            <ul class="dropdown-menu">
                <li>
                    <input type="checkbox" id="{{facet.name}}-line" name="{{facet.name}}-graph" value="line">
                    <label for="line">line</label>
                </li>
                <li>
                    <input type="checkbox" id="{{facet.name}}-dot" name="{{facet.name}}-graph" value="dot">
                    <label for="dot">dot</label>
                </li>
            </ul>
        </li>
    </ul>
    

    我尝试根据facet.name 生成idname,您可能需要更改它以满足您的需要。

    【讨论】:

      猜你喜欢
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多