要为$ http.get创建服务,

时间:2015-12-15 06:01:23

标签: angularjs service typeahead

这是在控制器中编写的,当我开始输入工作时使用typeahead获取位置名称

$scope.getLocation = function(val) {
        return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
            params: {
                address: val,
                // sensor: false
            }
        }).then(function(response) {
            return response.data.results.map(function(item) {
                return {
                    loc: item.geometry.location,
                    formatted_address: item.formatted_address,
                    place_id: item.place_id
                }
            });
        });
    };

所以我试图将$ http.get放到服务中,所以我将下面的代码添加到控制器中

$scope.getLocation = function(value) {
        var values = value;
        MapService.getMapUrl(values).then(function(response) {
            return response.data.results.map(function(item) {
                $scope.address=item.formatted_address;
                console.log(item.formatted_address);
                return {
                    loc: item.geometry.location,
                    formatted_address: item.formatted_address,
                    place_id: item.place_id
                }
            });
        });
    };

以及以下服务代码

app.service('MapService', function($http) {
return {
    getMapUrl: function(val) {
        return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
            params: {
                address: val,
                // sensor: false
            }
        })
    }
}
});

在创建上述服务后,我在控制台中获取该位置,但不在输入框的下拉列表中。任何人都可以告诉我代码中的错误。

0 个答案:

没有答案