我正在寫一個服務來通過HTTP請求檢索一些數據。Angular服務應該返回處理過的數據還是原始數據?
app.controller('WarriorsCtrl', function($scope, warriorService) {
warriorService.getWarriors(function(warriors){
$scope.warriors = warriors;
});
});
app.factory('warriorService', function($http) {
var getWarriors = function(callbackFn) {
$http.get('/api/warriors').success(function(data) {
callbackFn(data);
});
};
return {
getWarriors: getWarriors
};
});
如果控制器需要「鬥士」中的一些處理的格式是一個很好的做法做處理服務本身?
如:
var getWarriors = function(callbackFn) {
$http.get('/api/warriors').success(function(data) {
var processedWarriors = processData(data);
callbackFn(processedWarriors);
});
};
或者是它更好地使用該服務來回報原始數據,並做處理別的地方,如過濾器?
這是不是可以用一個簡單的「你應該總是」或回答「你不應該」 ......這是一個將取決於有多少數據被使用的東西,需要處理的數據有多少種不同的方式,有多少數據以及構成應用設計本身核心的大約一百萬種其他信息。 – Claies
問問自己,如果你需要原始數據的東西。如果你不這樣做,答案很明顯。是的,它應該使用承諾,不應該使用'成功',正如答案所解釋的那樣。 – estus