javascript - 从 1 个服务执行多个请求 (angularjs)

标签 javascript angularjs angular-resource

我是 AngularJs 的新手,我想从我的服务执行多个请求。 到目前为止,我只成功执行了一个请求:

我的服务文件:

ticketServices.factory('Category', ['$resource',
    function($resource){
        var resource = $resource(
            baseUrl('/admin/ticket/?format=json'), {}, { 
                query: {
                    method:'GET',
                    params: {},
                    isObject: true
                }
            });
            return resource;
    }
]);

我的 Controller 文件:

ticketApp.controller('ticketCtrl', ['$scope', 'Category', function ($scope, Category) {
    Category.query();
}]);

例如,我希望能够做到这一点:

Category.fecthCities();
Category.fetchMessage();

但我不知道如何将这些请求添加到我的服务中。

如有任何帮助,我们将不胜感激。

最佳答案

如果我理解正确的话,应该是这样的:

JS

fessmodule.controller('fessCntrl', function ($scope, Data) {

    $scope.alertSwap1 = function () {   
        Data.fecthCities()
                        .then(function (result) {
                           $scope.cities = result;

                        }, function (result) {
                            alert("Error: No data returned");
                        });
        };

     $scope.alertSwap2 = function () {   
        Data.fetchMessage()
                        .then(function (result) {
                           $scope.message = result;                           
                        }, function (result) {
                            alert("Error: No data returned");
                        });

    };

});

fessmodule.$inject = ['$scope', 'Data'];

fessmodule.factory('Data', ['$resource','$q',  function($resource, $q) {
    var cities = [
    {
        "city": "Tel Aviv"
    }
    ]; 

     var message = [
    {
        "MyMessage": "Hello mate"
    }
    ]; 

       var factory = {
            fecthCities: function () {
                var deferred = $q.defer();

                deferred.resolve(cities);

                return deferred.promise;
            },
            fetchMessage: function () {
                var deferred = $q.defer();

                deferred.resolve(message);

                return deferred.promise;
            }

        }
        return factory;
}]);

工厂有两个方法:fecthCitiesetchMessage

您可以用 GET 资源替换 static var 城市/消息。

演示 Fiddle

关于javascript - 从 1 个服务执行多个请求 (angularjs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19423178/

相关文章:

javascript - 防止 ngResource 在 $save 上要求返回的项目

javascript - jQuery:在每个循环中将对象添加到数组不起作用

javascript - 将非文本数据粘贴到基于浏览器的应用程序中

javascript - 使用 JavaScript 检查字符串中存在的模式

javascript - AngularJS 在第一个数组中查找第二个数组中未出现的对象

javascript - Angular 似乎没有运行

javascript - 以 Angular 向 {{}} 添加占位符

javascript - for 循环中的 Angular Promise

javascript - 在 AngularJS 中处理 $q.all 和 promises 时出错

javascript - 尝试根据特定条件创建趋势公式