0

私は AngularJs を初めて使用し、自分のサービスからいくつかのリクエストを実行したいと考えています。これまでのところ、私は1つのリクエストしか実行できませんでした:

私のサービスファイル:

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

私のコントローラーファイル:

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

たとえば、これを実行できるようにしたいと思います。

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

しかし、これらのリクエストをサービスに追加する方法がわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

2

私があなたを正しく理解しているなら、それは次のようなものでなければなりません:

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

ファクトリには と の 2 つのメソッドがfecthCitiesありetchMessageます。

代わりに、静的変数の都市/メッセージを GET リソースに置き換えることができます。

デモFiddle

于 2013-10-17T09:46:11.847 に答える