Как добавить переменный элемент в URL в AngularJS $ http - PullRequest
0 голосов
/ 11 июня 2018

У меня есть код ниже, чтобы получить прогноз погоды.Как мне сделать почтовый индекс в URL как переменную.Я сделал это в простом javascript, разбив URL-адрес на подстроки, а затем передав в метод get, но это не работает в AngularJS.Пожалуйста помоги.

JS код

controllers.weatherCtrl= function ($scope,$http) {
$scope.getWeather=function() {
  $http.get('http://api.openweathermap.org/data/2.5/forecast?zip=60007&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
  .then(function(response){
    $scope.weatherdata=response.data;
    });
  };
};

Index.html

<div class="container border">

      <input ng-model="zip">
      <button class="btn" ng-click="getWeather()">Get Weather</button>
      <br>
      <span>{{weatherdata.city.name + ', ' + weatherdata.city.country}}</span>
    </div>

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Если вы создадите URL, то ответ Марка S будет правильным.Если вы получили URL-адрес откуда-то, и вам необходимо проанализировать его и извлечь почтовый индекс, вы можете использовать регулярное выражение

url.match(/(?<=zip\=)\d*(?=\&)/g)

, являющееся строкой URL-адреса.

0 голосов
/ 11 июня 2018

Вам необходимо добавить параметр в функцию weatherCtrl и добавить его в переменную в URL.Затем вызывается функция с параметром.

JS-код

controllers.weatherCtrl= function ($scope,$http) {
$scope.getWeather=function(zipcode) {
  $http.get('http://api.openweathermap.org/data/2.5/forecast?zip='+zipcode+'&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
  .then(function(response){
    $scope.weatherdata=response.data;
    });
  };
};

Index.html

<div class="container border">

      <input ng-model="zip">
      <button class="btn" ng-click="getWeather(zip)">Get Weather</button>
      <br>
      <span>{{weatherdata.city.name + ', ' + weatherdata.city.country}}</span>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...