为什么bootstrap uib下拉列表不能使用select元素

时间:2018-02-28 10:46:53

标签: html angularjs-directive angular-ui-bootstrap

当我在没有uib-指令的情况下运行我的angularJS(ver 1.4.9)应用程序时,选择有效,但显示已打开的项目,按钮不执行任何操作。

它不会与下拉菜单组件集成。我见过的所有示例都使用了无序列表和列表项结构,并且引导UI下拉列表基于ui和li元素出现,导致了一个明显的问题 - 为什么这些元素而不是select,选项元素。

我想保留这个:ng-options="e for e in vm.plannedEmployees track by e" 因为我知道它有效,并花了一个星期的黑客来找到它(虽然我不明白它的复杂性)

<div class="btn-group" uib-dropdown>
    <button class="btn btn-primary" uib-dropdown-toggle>
        <span class="caret"></span>
    </button>
    <select ng-options="e for e in vm.plannedEmployees track by e" 
            multiple="multiple" ng-model="selectedEmployee" 
            ng-change="vm.employeeSelectClick(selectedEmployee)">
    </select>
</div>

1 个答案:

答案 0 :(得分:0)

  

我见过的所有示例都使用了无序列表和列表项结构,并且引导UI下拉列表基于ui和li元素显示,导致了明显的问题 - 为什么这些元素而不是select,选项元素。

uib-bootstrap项目旨在将引导程序插件移植到Angular指令中,引导程序样式使用<ul><li>元素定义下拉列表,并使用选择/定位这些元素的CSS, uib指令只是替换你在非Angular页面中使用的jQuery代码。

此外,在UI意义上,select与下拉列表不同,在Angular意义上,select是通常会公开ngModel的输入,uib-dropdown不会公开ngModel(随后,赢了不允许你使用需要它的指令,例如ngChange或ngModelOptions。

话虽如此,您可能希望将ui-select作为替代方案。