2013-11-28 88 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(); 
}]);