Работа с акцентами в angularjs

0

У меня есть список названий городов. Если пользователь выбирает один, я хотел бы установить центр моей угловой-google-карты в этот определенный город.
console.log отлично работает. Я возвращаю правильное название города, но если я передам его функции, это заменит акценты.

$scope.selectCity = function (city) {
  console.log(city.name) //it works fine. The log: Abaújkér
  locationService.getLatLngByCityName(city.name).then(function (result){
    var cityLatLng = result.data.results[0].geometry.location;

    console.log(cityLatLng);
  }).catch(function (error) {
    console.log(error);
  });
};

locationService.getLatLngByCityName возвращается с плохим запросом:

GET http://maps.googleapis.com/maps/api/geocode/json?address=Aba%FAjk%E9r&sensor=true 400 (неверный запрос)

Фабрика:

factory.getLatLngByCityName = function (city) {
  console.log(city); // it works fine. The log: Abaújkér
  var API_URL = 'http://maps.googleapis.com/maps/api/geocode/json?address=' + city;
  return $http({
    method: 'GET',
    url: API_URL,
    params: { sensor: true }
  })
    .catch(function () {
    return $q.reject();
  });
}

Я думаю, что-то с кодировкой. Как я могу исправить URL googleapis?

  • 0
    используйте encodeURI (uri); по названию города
  • 0
    Большое спасибо @ Vanojx1! Оно работает. Если бы вы могли опубликовать это как ответ, я бы принял это.
Теги:
google-maps
google-maps-api-3
utf-8

1 ответ

0
Лучший ответ

Вам нужно, чтобы url кодировал параметры GET с помощью "специальных символов", используйте эту функцию:

encodeURI()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню