我已经通过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)">

10-08 02:12