在服务中使用 http 请求

HTTP 请求在每个 Web 应用程序中被广泛使用,因此为每个常见请求编写方法,然后在整个应用程序的多个位置使用它是明智的。

创建一个 httpRequestsService.js

httpRequestsService.js

appName.service('httpRequestsService', function($q, $http){

    return {
        // function that performs a basic get request
        getName: function(){
            // make sure $http is injected
            return $http.get("/someAPI/names")
                .then(function(response) {
                    // return the result as a promise
                    return response;
                }, function(response) {
                    // defer the promise
                    return $q.reject(response.data);
                });
        },

        // add functions for other requests made by your app
        addName: function(){
            // some code...
        }
    }
})

上述服务将在服务中执行 get 请求。这将适用于已注入服务的任何控制器。

样品用法

appName.controller('controllerName',
    ['httpRequestsService', function(httpRequestsService){

        // we injected httpRequestsService service on this controller
        // that made the getName() function available to use.
        httpRequestsService.getName()
            .then(function(response){
                // success
            }, function(error){
                // do something with the error
            })
    }])

使用这种方法,我们现在可以随时在任何控制器中使用 httpRequestsService.js