Я пишу службу для получения некоторых данных через HTTP-запрос.Должен ли Угловой сервис возвращать обработанные данные или необработанные данные?
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