2013-05-13 3 views
0

Я использую filter, и все работает красиво, когда пользователь вводит в поле ввода. Однако мне хотелось бы обновить отфильтрованные результаты с помощью кода (например, для очистки запроса) без ввода пользователя. Я попытался вызвать событие изменения или просто очистить значение поля ввода без каких-либо успехов.Как обновить отфильтрованный список в AngularJS без ввода пользователя

Вот мой простейший HTML

<div ng-app ng-controller="test">  
    <input type="text" ng-model="query" placeholder="search.."> 
    <button>Clear</button> 
    <ul class="unstyled"> 
     <li ng-repeat="item in list | filter:query"> 
      {{item}} 
     </li> 
    </ul> 
</div> 

А вот JS:

function test($scope) { 
    $scope.list = [120, 566, 777, 889, 998, 332, 112, 440, 881]; 

    $('button').click(function() { 
     $('input').val(''); 
    }); 
} 

JSFiddle

Что я могу сделать, чтобы unfilter результаты без удаления содержимого ввода с помощью клавиатура, но делать это, хотя код (например, щелчок на кнопке очистки)?

ответ

2

Не регистрируйте обработчик событий через jQuery let ng-click.

<button ng-click="clearBox()">Clear</button> 


function test($scope) { 
    $scope.list = [120, 566, 777, 889, 998, 332, 112, 440, 881]; 

    $scope.clearBox = function(){ 
     $scope.query = ""; 
    }; 
} 

Updated fiddle

Смежные вопросы