0

我有一些选择,我用 ng-options 填充。我想知道是否可以动态分组/不分组这个选择。

这是一个(简化的)<select>

<select class="brand-select" 
  ng-model="selectedBrand" chosen="brandList"
  ng-options="brand as brand.name group by brand.bestseller for brand in brandList">
</select>

我希望能够在那个选择和这个之间切换(注意,这个没有分组):

<select class="brand-select"
  ng-model="selectedBrand" chosen="brandList"
  ng-options="brand as brand.name for brand in brandList">
</select>

我希望将分组绑定到 $scope 变量。

我尝试将 select 绑定到指令并动态设置 ng-options attr 的值,但似乎这是不可能的。

除了有两个选择并显示/隐藏其中一个之外,还有什么关于执行此操作的最佳方法的建议吗?

4

2 回答 2

3

如果您使用 angular 1.4.8 及以下版本,则上述 4vanger 的回答是正确的,但请注意,使用 angular 1.5 及以上版本时,您必须返回“未定义”以禁用分组。否则会出现一个“空”组。

于 2016-05-10T13:33:42.077 回答
1

使用函数来确定“分组依据”值 - 如果不需要分组,则返回 null:

$scope.grouping = true
$scope.groupBy = function(v){return $scope.grouping ? v[0]: null}
...
<select ng-model="selected" ng-options="k group by groupBy(v) for (k,v) in friends"></select>      

http://jsfiddle.net/cWH4n/

于 2013-10-10T14:11:20.163 回答