首页 > 解决方案 > 得到响应后调用服务 - AngularJS

问题描述

编写服务以获取初始详细信息,然后根据其响应获取完整详细信息。只有在从初始响应中检索到电子邮件后,才能获取完整的详细信息。

(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 获取基于电子邮件地址的完整详细信息。

标签: angularjsangularjs-service

解决方案


我认为您应该尝试使用.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
}

推荐阅读