避免过滤异步ng-options默认值

时间:2014-12-12 09:45:34

标签: javascript angularjs ng-options angular-filters

对angularjs 1.3.6的更新破坏了我的一些过滤器。

我尝试修复它们并转到this解决方案。

隐藏默认选项:

<select ng-model="search.type" ng-options="g.id as g.name for g in group">
    <option ng-show="false" value="">Any</option>
</select>

添加&#39;任何&#39;不会过滤列表的选项。

$scope.group = [];
$scope.group[0] = {id:'',name:'Any'};

有没有人有更好的解决方案呢?使用这个ng-show技巧对我来说似乎不太好。

1 个答案:

答案 0 :(得分:0)

你做的几乎都是正确的。缺少2件事,然后你不需要ng-show hack:

  1. 使<select>的ViewModel属性成为实际的过滤对象,而不仅仅是Id属性,并相应地更改过滤字符串。
  2. 使ViewModel属性等于“Any”对象 - 这会将<select>设置为正确的选项。
  3. 1)

    <div ng-repeat="item in items| filter:search.type">
        {{item.name}}
    </div>
    
    <select ng-model="search" ng-options="g as g.name for g in group">
    </select>
    

    2)

    $scope.search = $scope.group[0] = {id:'',name:'Any'};
    

    更新了jsFiddle