2013-11-28 58 views
0

我有这个电话。我想在控制器使用它之前操纵REST服务返回的数据。这如何实现?现在我得到了原始数据。我明白我可以但是这个逻辑ApiFactory.get(函数(数据));但我更喜欢在服务器中拥有逻辑。我怎样才能做到这一点?如何创建服务/工厂angularjs

在服务:

app.factory('ApiFactory', ['$resource', function($resource) { 
    return $resource('http://localhost:8080/rest/forum/categories/1'); 
}]); 

在控制器:

app.controller('SubjectCntrl', ['$scope', 'categoryService', 'ApiFactory', function($scope, categoryService, ApiFactory) { 
    ApiFactory.get(function(data) { 
     console.log(data); 
    }); 
}]); 
+0

您可能正在寻找'$ locationProvider'的解决方案。 – AlwaysALearner

回答

1

您可以创建另一家工厂,只要你想的是分析数据。类似的东西:

app.factory('ApiFactory', ['$resource', function($resource) { 
    return $resource('http://localhost:8080/rest/forum/categories/1'); 
}]); 

app.factory('ApiParser', ['ApiFactory', function(ApiFactory) { 
    return { 
     get: function() { 
      var data = ApiFactory.get(function(d) { 
       /* do whatever you need to do with the data */ 
       return parsedData; 
      }); 
      return data; 
     } 
    } 
}]); 

app.controller('SubjectCntrl', ['$scope', 'categoryService', 'ApiParser', function($scope, categoryService, ApiParser) { 
    $scope.parsedData = ApiParser.get(); 
}]);