искать и повторять города с помощью ng-repeat и openweathermap api

0

Привет, ребята, я уже некоторое время пытался сортировать данные из openweathermap.org, используя api, предоставленный сайтом, и функцию ng-repeat в angularjs. по какой-то причине я не могу заставить его работать... то, что я пытаюсь сделать, это сначала отобразить все собранные данные, а затем отсортировать их с помощью поля ввода.

Javascript

var app = angular.module('weatherApp', []);

app.controller('weatherController', function($scope, $http) {

$http.jsonp('http://api.openweathermap.org/data/2.5/weather', { params : {
	q : $scope.city,
	units : $scope.units,
	callback: 'JSON_CALLBACK',
	APPID: $scope.id
}}).success(function(data){
	$scope.data = data;
});
	
$scope.units = 'metric';
$scope.id = 'e08f9689f06c1b6eddb44396c749eb54';  

$scope.reset = function(){
return $scope.city = "";
};
});
HTML
<div ng-app="weatherApp" ng-controller="weatherController">
<input ng-model="city.name" placeholder="City" />
<button ng-click="reset()">Reset</button>
<ul>
    <li ng-repeat=" x in data | filter : city">
        {{x.name}}
    </li>
</ul>

  • 0
    что вы хотите отобразить изначально? все города?
  • 0
    да, изначально ... а затем укажите результат с помощью ввода. что-то вроде: L дает Лос-Анджелесу, Лофотену и так далее, а Лос-Анджелес дает Лос-Анджелесу, но не Лофотену ... Я очень новичок в этом бизнесе openweathermap, поэтому не совсем уверен, как его использовать. У меня нет проблем с обработкой локального файла JSON таким же образом
Показать ещё 8 комментариев
Теги:
jsonp
openweathermap

1 ответ

0

Вы можете попытаться установить $scope.id и $scope.units перед вызовом $http.jsonp. Мне кажется, что значения используются в параметрах перед их установкой. Попробуйте изменить это на:

var app = angular.module('weatherApp', []);

app.controller('weatherController', function($scope, $http) {

    $scope.units = 'metric';
    $scope.id = 'e08f9689f06c1b6eddb44396c749eb54';  

    $http.jsonp('http://api.openweathermap.org/data/2.5/weather', { params : {
        q : $scope.city,
        units : $scope.units,
        callback: 'JSON_CALLBACK',
        APPID: $scope.id
    }}).success(function(data){
        $scope.data = data;
    });

    $scope.reset = function(){
        $scope.city = '';
    };
});

Ещё вопросы

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