@Scorpiored88

Как динамично менять значения ng-model?

Пытаюсь сделать простенький autocoсplete,возможно не совсем правильно но ....
вот мой код html :

<input type="search" placeholder="Search" ng-model="stationSearch">
 <button class="button" ng-click="setStation(bn.name)" ng-repeat="bn in itemsList | filter:stationSearch">
              {{bn.name}}
          </button>


и код контроллера :

$scope.stationSearch = '';
 $scope.setStation = function(bnn){
            $scope.stationSearch = '';
            $scope.stationSearch = bnn;
};
    $scope.itemsList = [
            {'name': 'Iapetos Baltazar', 'amount': 1},
            {'name': 'Mordred Maui', 'amount': 4},
            {'name': 'Verethragna Tane', 'amount': 20},
            {'name': 'Arawn Lir', 'amount': 7},
            {'name': 'Cepheus Zephyrus', 'amount': 15},
            {'name': 'Leander Pallas', 'amount': 9},
            {'name': 'Chryses Vohu Manah', 'amount': 13},
            {'name': 'Nuadha Lycus', 'amount': 19}
        ];


Когда нажимаю на кнопку из ng-repeat, переменная stationSearch получает нужное значения,таким образом поле input заполняется и срабатывает фильтр.
Но если потом стереть данные из inputa или в начале вводить туда данные вручную,то по нажатию на кнопку из ng-repeat ничего не происходит :( input не заполняется :(
При проверке через console.log видно что переменная stationSearch получает новое значения,функция по нажатию срабатывает, но в браузере результата нет
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Scorpiored88 Автор вопроса
У меня проблема решилась после того как "stationSearch" я сделал object

$scope.stationSearch = {}
и
ng-model="stationSearch.val"


Но тепер вылезла новая проблема.
Мой массив "itemsLis" имеет около 2000 (2 тис) элементов object,и при наборе букв получается довольно большая задержка :(
Может кто подскажет как мне изменить мой фильтр чтобы он работал без тормозов.
Или возможно есть уже хорошие готовые решения autocompete которые работают с большим масивом данных ?

Хотя наверное нужно создавать новый вопрос )
Ответ написан
Комментировать
@siarheipashkevich
developer
Если ещё актуально:
ngAutocomplete
angucomplete
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы