如何在调用AngularJS工厂服务后测试成功

时间:2015-04-14 18:48:30

标签: javascript angularjs

我想知道如何检查功能是否成功或有错误。我在函数本身中检查了这一点。但是如何在调用服务时重新检查结果。

我尝试过这样的事情

      entryService.update($scope.entry)
        .success(function(){
          $scope.entry = data;
          $state.go('entry', {id: $scope.entry._id});
        }).error(function(){
          error = true;
        });

然而,这不起作用。我想知道如何获得类似的结果?

我的服务功能如下:

angular.module('academiaUnitateApp')
    .factory('entryService',function($http){
        var service = {};

        service.update = function(entry, callback){
            $http.put('/api/entrys/' + entry._id, entry)
                .success(callback, function(data){
                    console.log('Updated entry : ', data);
                })
                .error(callback, function(error){
                    console.log("Couldn't update entry. Error : ", error);
                });
        };

        return service;
  });

2 个答案:

答案 0 :(得分:2)

您可以从函数中返回true或false以获得成功或失败。

答案 1 :(得分:1)

检查代码评论

 entryService.update($scope.entry)
    .success(function(){
      $scope.entry = data;
      $state.go('entry', {id: $scope.entry._id});
    }).error(function(){
      error = true;
    });


angular.module('academiaUnitateApp')
.factory('entryService',function($http){
    var service = {};

    service.update = function(entry, callback){
        $http.put('/api/entrys/' + entry._id, entry)
            .success(callback, function(data){
                console.log('Updated entry : ', data);
            })
            .error(callback, function(error){
                console.log("Couldn't update entry. Error : ", error);
                //IF ERROR, RETURN NULL
                return null;
            });
     //MUST RETURN DATA HERE TO ALLOW .SUCCESS TO RUN
     return data;
    };

    return service;
 });

Update函数中的返回数据将使成功(或.done)函数被调用。