0

I'm new to AngularJs and i'd like to perform several requests from my service. So far, i managed to performed one request only:

My service file :

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

My controller file :

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

I'd like to be able to do this for instance :

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

But i can't figure out how to add these requests to my service.

Any help would be appreciated.

pbaris
  • 4,525
  • 5
  • 37
  • 61
Alexandre Nucera
  • 2,183
  • 2
  • 21
  • 34

1 Answers1

2

If I understand you right it should be something like:

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;
}]);

The factory has two methods: fecthCities and etchMessage.

Instead static var cities/message you can replace with GET resource.

Demo Fiddle

Maxim Shoustin
  • 77,483
  • 27
  • 203
  • 225
  • Maybe my question was not clear enough but I would like to add these 2 new requests to my service file (along with the query one) – Alexandre Nucera Oct 17 '13 at 09:57
  • take a look on Fiddle I posted, my factory has 2 methods: `fecthCities` and `fetchMessage`. Instead static `var cities/message` replace with your `GET` resource. Because I use Fiddle – Maxim Shoustin Oct 17 '13 at 10:02