2016-01-14 2 views
0

У меня есть список выбора ng-options, который я хочу, чтобы там была опция по умолчанию, которая отображает все параметры; Когда вы нажимаете элемент в списке, он должен фильтровать, когда вы нажимаете на значение по умолчанию, оно должно показывать все значения. Я мог бы поклясться в прошлом, что смог это сделать, используя элемент html с параметром, установленным в значение «", но это не работает, может кто-то поможет мне в этом разобраться. Скрипт ниже.Опция ng-options по умолчанию, которая отображает все параметры

http://jsfiddle.net/nzfks0rq/

<select ng-model="todoFilter" ng-options="todo.name as todo.name for todo in todos" class='form-control'> 
    <option value="">Choose Vendor</option> 
</select> 
<ul class="unstyled"> 
    <li ng-repeat="todo in todos | filter:{name: todoFilter}"> 
    {{todo.name}} 
    </li> 
</ul> 

благодарит

ответ

1

@mrust правильно, но в вашем случае вы можете просто использовать простую search логику этого примера обеспечивают

<div ng-init="friends = [{name:'John', phone:'555-1276'}, 
         {name:'Mary', phone:'800-BIG-MARY'}, 
         {name:'Mike', phone:'555-4321'}, 
         {name:'Adam', phone:'555-5678'}, 
         {name:'Julie', phone:'555-8765'}, 
         {name:'Juliette', phone:'555-5678'}]"></div> 

<label>Search: <input ng-model="searchText"></label> 
<table id="searchTextResults"> 
    <tr><th>Name</th><th>Phone</th></tr> 
    <tr ng-repeat="friend in friends | filter:searchText"> 
    <td>{{friend.name}}</td> 
    <td>{{friend.phone}}</td> 
    </tr> 
</table> 
<hr> 

этот код более важно понять, как организовать поиск с помощью одного или нескольких полей с использованием фильтра по умолчанию

<label>Any: <input ng-model="search.$"></label> <br> 
<label>Name only <input ng-model="search.name"></label><br> 
<label>Phone only <input ng-model="search.phone"></label><br> 
<label>Equality <input type="checkbox" ng-model="strict"></label><br> 
<table id="searchObjResults"> 
    <tr><th>Name</th><th>Phone</th></tr> 
    <tr ng-repeat="friendObj in friends | filter:search:strict"> 
    <td>{{friendObj.name}}</td> 
    <td>{{friendObj.phone}}</td> 
    </tr> 
</table> 

С наилучшими пожеланиями

Егор

0

Ваша проблема заключается в том, что значение параметра по умолчанию интерпретируется как null Так что, на мой взгляд, простой способ решить вашу проблему - просто добавить чат к вашему фильтру и преобразовать его в пустую строку, если она не определена.

$scope.$watch('todoFilter', function(val){ 
    $scope.todoFilter = $scope.todoFilter? $scope.todoFilter : ""; 
}); 

Fiddle