Предельные результаты

Я использую директиву angular-ui typeahead для подключения к API Карт Google и получения массива адресов. Обычно, когда мне нужно ограничить количество видимых результатов, я делаю что-то вроде:

<input typeahead="eye for eye in array | filter:$viewValue | limitTo:10">

Это работает отлично, и результаты ограничены 10. Однако, когда я пытаюсь сделать то же самое с асинхронными результатами, это не работает. Это даст больше результатов, чем я указал вlimitTo.

Я делаю что-то неправильно ниже?

Вот плункер:

HTML:

  <input ng-model="asyncSelected" typeahead="address for address in getLocation($viewValue) | limitTo:1" typeahead-loading="loadingLocations">

JavaScript:

  $scope.getLocation = function(val) {
    return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
      params: {
        address: val
      }
    }).then(function(res){
      var addresses = [];
      angular.forEach(res.data.results, function(item){
        addresses.push(item.formatted_address);
      });
      return addresses;
    });
  };

В настоящее время я делаю следующее, чтобы обойти, мне просто любопытно, почему простойlimitTo не работает

$scope.getLocation = function(val) {
    return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
      params: {
        address: val
      }
    }).then(function(res){
      var addresses = [];
      var resultNumber = res.data.results.length > 5 ? 5 : res.data.results.length;
      for(var i = 0; i < resultNumber; i++){
        var obj = res.data.results[i];
        var addr = obj.formatted_address;
        addresses.push(addr);
      }
            return addresses;
    });
  };

Ответы на вопрос(1)

Ваш ответ на вопрос