2016-06-27 3 views
0

Я пытаюсь сделать автозаполнение с помощью $ scope.watch, и он работает идеально, но когда я выбираю вариант, делая щелчок по элементу, он помещается на вход, но элементы надевают 't скрыть, потому что, когда я положил его на вход, часы снова активируются ...Скрыть пункты автозаполнения с помощью часов Angularjs

Я не знаю, как скрыть предметы, когда я выбираю один из его.

Любая помощь ..

<input type="text" ng-model="selected" /> 
<ul class="listFavoInbox"> 
    <li ng-repeat="favo in resultAuto" ng-click="itemFavoInbox(favo.first,favo.id)"> 
     {{favo.first}} 
    </li> 
</ul> 
$scope.selected = ""; 
$scope.arrayFavo = [ 
    {'id': 1, 'first': 'John', 'last': 'Depp', 'age':52, 'gender':'male'}, 
    {'id': 2, 'first': 'Sally', 'last': 'JoHanson', 'age':13, 'gender':'female'}, 
    {'id': 3, 'first': 'Taylor', 'last': 'Swift', 'age':22, 'gender':'female'}, 
]; 

$scope.$watch('selected', function() { 
    $scope.resultAuto = []; 
    for(var i=0; i<$scope.arrayFavo.length; i++){ 

     var text = angular.lowercase($scope.arrayFavo[i].first); 
     var search = angular.lowercase($scope.selected); 

     // console.log("text array",text); 
     // console.log("text",$scope.selected); 

     if (search != ""){ 
      if (text.indexOf(search) !== -1){ 
       $scope.resultAuto.push($scope.arrayFavo[i]); 
      } 

      console.log($scope.resultAuto); 
     } 
    } 
}); 

$scope.itemFavoInbox = function (name,id){ 
    $scope.selected = name; 
    $scope.resultAuto = ""; 
} 

ответ

-1

вы можете использовать нг скрыть = истина; при нажатии на элементFavoInbox(); и false, если наблюдатель будет действовать

0

Для этого вам не нужно $watch(). Используйте filter

<input type="text" ng-model="selected" /> 
<ul class="listFavoInbox"> 
    <li ng-repeat="favo in arrayFavo | filter:selected" ng-click="itemFavoInbox(favo.first,favo.id)"> 
     {{favo.first}} 
    </li> 
</ul> 

Или filter:{first: selected} для выбранного поля;

Fiddle;

+0

нормально, это хорошо, но мои реальные вопросы есть, когда я выбираю вещи, мне нужно скрыть список пунктов, это моя проблема. – user3810167

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