在函数中调用的Angular $ http方法只能工作一次

时间:2013-11-26 18:50:47

标签: ajax angularjs

我在角度服务中有这个功能,我想在整个应用程序中多次调用。

版本1

getNearbyRestaurants: function(){

    $http.get(url)
        .success(function(data){
            console.log("works here")
            // do stuff with the data
        }) 
        .error(function(){
            console.log("got an error");
            // do stuff with the error
        });


}

第2版

getNearbyRestaurants: function(lat, lng){

    var latLng = "ll=" + lat + "," + lng

    return $http.get(url + latLng)
}

我第一次调用此函数一切都很好,但任何后续调用都不会执行任何操作。我把它变成了函数就好了,但是$ http服务实际上并没有调用url,也没有调用成功函数和错误函数。我不完全确定这里有什么问题。它应该每次都有效。我错过了对$ http服务的基本了解吗?

1 个答案:

答案 0 :(得分:0)

所以我解决了这个问题。发生的事情是我从Angular之外调用函数(来自google maps事件回调)。所以我需要做的就是将函数调用包装在$ rootScope中。$ apply,一切都很完美。