我有这个电话。我想在控制器使用它之前操纵REST服务返回的数据。如何实现这一目标?现在我得到了原始数据。我明白我可以这个逻辑ApiFactory.get(function(data));但我更喜欢在服务器中使用逻辑。我怎样才能做到这一点?
在服务中:
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 :(得分: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();
}]);