Вызов другой сервисной функции из сервисной функции

Есть ли способ вызвать другую службу из текущей службы?

/ЗАВОДЫ/

app.service('p3call',function($http,$rootScope){
return {
    getRepairCategory:function(url){
        $http.post(url)
        .success(function (response){
            generatePaginationData(response);
        });
    },
    deleteRepairCategory:function(request,url){
        $http.post(url,request)
        .success(function (response){
            generatePaginationData(response)
        });
    },
    generatePaginationData:function(response){
        var pages = [];
        $rootScope.categories = response.data;
        $rootScope.currentPage = response.current_page;
        $rootScope.totalPages = response.last_page;
        for(var i=1;i<=response.last_page;i++) {          
            pages.push(i);
        }
        $rootScope.range = pages;
    }
};
});

/ЗАВОДЫ/


person Jishad    schedule 19.10.2016    source источник


Ответы (2)


да вполне возможно:

app.service('p3call',function($http,$rootScope, myOtherService){
    return {
        getRepairCategory:function(url){
            ...
        },
        deleteRepairCategory:function(request,url){
            ...
        },
        generatePaginationData:function(response){
            ...
        }
        myFunction(){
            myOtherService.newFunction();
        }
    };
});

Просто введите свой сервис и используйте его.

person Fernando Del Olmo    schedule 19.10.2016
comment
Видите ли, я хочу вызвать функцию generatePaginationData из функций getRepairCategory и deleteRepairCategory после успешного HTTP-запроса. - person Jishad; 19.10.2016
comment
Извините, не видел этого. Для этого я могу перенаправить вас на другой вопрос, подобный вашему stackoverflow.com/q/19842669/6691908, но, продолжим, можете ли вы попробовать использовать this? - person Fernando Del Olmo; 19.10.2016

Попробуйте использовать ссылку this службы

app.service('p3call',function($http,$rootScope){
var this = this;
return {
    getRepairCategory:function(url){
        $http.post(url)
        .success(function (response){
            this.generatePaginationData(response);
        });
    },
    deleteRepairCategory:function(request,url){
        $http.post(url,request)
        .success(function (response){
        this.generatePaginationData(response)
        });
    },
    generatePaginationData:function(response){
        var pages = [];
        $rootScope.categories = response.data;
        $rootScope.currentPage = response.current_page;
        $rootScope.totalPages = response.last_page;
        for(var i=1;i<=response.last_page;i++) {          
            pages.push(i);
        }
        $rootScope.range = pages;
    }
};
});
person Sravan    schedule 19.10.2016
comment
используйте this или self. - person Sravan; 19.10.2016