我已经通过inputCity
完成了HTML的天气搜索,当它返回一个数组时,我想给人们一个选择的选择:
<form class="form-container" ng-submit="submitForm(inputCity)">
<input class="input-field" type="text" ng-model="inputCity" placeholder="City">
<input class="button-style" type="submit" value="Show Weather">
</form>
<table class="cities-table" ng-if="isArray">
<tr ng-repeat="data in cityArray" ng-click="inputCity=='zmw:{{data.zmw}}'">
<td>{{data.city}} in {{data.country_name}}</td>
</tr>
</table>
我的js文件:
.controller('WeatherController', [
'$scope',
'Weather',
function($scope, Weather) {
/* TODO: implement */
$scope.weatherData = [];
$scope.submitForm = function(inputCity){
Weather.getWeather(inputCity).success(function(data){
$scope.isArray = angular.isArray(data.response.results);
$scope.cityArray = data.response.results;
以及工厂中的链接:
getWeather : function(inputCity) {
return $http({
url: 'http://api.wunderground.com/api/KEY/conditions/q/' + inputCity + '.json',
method: 'GET'
})
}
当数组出现时,我可以在
ng-click
上选择城市名称吗(因为该信息随数组提供,因此用户可以在搜索栏中使用zmw:{{data.zmw}}而不是inputCity或真实的城市名称)并发送AJAX请求?更明确地说:
我输入了一个表格(应该写上城市名称)和一个搜索按钮。单击“按钮”后,下面将显示天气信息。但是,当人们键入一个城市(不是世界上唯一一个具有相同名称的城市)时(例如旧金山)(其中有10个,在阿根廷,美国等),天气API会返回所有可能的数组城市,而不是天气信息。至此,如果返回数组,它将显示API返回的所有城市。我现在想做的是,当用户单击显示的城市之一时,
ng-click
触发相同的AJAX调用,但搜索输入良好(zmw:{{data.zmw}}工作正常)。也许我应该为此做其他功能,但是然后显示一些错误? 最佳答案
您可以通过更改以下行来获取click事件以触发AJAX调用
<tr ng-repeat="data in cityArray" ng-click="inputCity=='zmw:{{data.zmw}}'">
与
<tr ng-repeat="data in cityArray" ng-click="submitForm('zmw:' + data.zmw)">