Позвоните в сервис после получения ответа - AngularJS - PullRequest
0 голосов
/ 25 августа 2018

Сервис написан для получения начальных данных, а затем на основании его ответа получить полную информацию. Полная информация может быть получена только после получения электронного письма из первоначального ответа.

(function () {
    function empService(mainSrv, empSrv) {
        var self = this;
        var initialDetail = mainSrv.getInitialDetails.get();
        self.getInitialDetails = function () {
            return initialDetail.$promise.then(function (data) {
                var user = data.result;
                self.fName = user.first_name;
                self.lName = user.last_name;
                self.email = user.email;
            });
        };
    var completeDetail = empSrv.getCompleteDetails.get({email : **self.email**});
        self.getCompleteDetails = function () {
            return completeDetail.$promise.then(function (data) {
                self.eDetails = data.details;
            });
        };
    }
    myServiceModule.service('empService', ['mainSrv’, 'empSrv' , empService]);
})();

Сервис / Код инициализируется, электронная почта становится неопределенной; mainSrv / mainService получает информацию о почте, а empSrv / empService получает полную информацию на основе адреса электронной почты.

1 Ответ

0 голосов
/ 26 августа 2018

Я думаю, вам следует попробовать .success, например:

var empService = function () {
    mainSrv.getInitialDetails.get()
        .success(onGetInitDetailsSuccess())
        .error(onGetInitDetailsError())
}
$scope.onGetInitDetailsSuccess() = function (result) {
    empSrv.getCompleteDetails.get(result)
}
$scope.onGetInitDetailsError() = function (result) {
    //handle your exception here
}
...