I have a factory that serves up three different $http.get
methods.
angular.module('myApp')
.factory('getFactory', function ($http, $q) {
return {
methodOne: function () {
var deferred = $q.defer();
$http.get('path/to/data')
.then(function successCallback (data) {
deferred.resolve(data);
},function errorCallback (response) {
console.log(response);
});
return deferred.promise;
},
methodTwo: function (arg1, arg2) {
var deferred = $q.defer();
$http.get('path/to/' + arg1 + '/some/' + arg2 + 'more/data')
.then(function successCallback (data) {
deferred.resolve(data);
},function errorCallback (response) {
console.log(response);
});
return deferred.promise;
},
methodThree: function (arg1, arg2, arg3) {
var deferred = $q.defer();
$http.get('path/to/' + arg1 + '/some/' + arg2 + '/more/' + arg3 + '/data')
.then(function successCallback (data) {
deferred.resolve(data);
},function errorCallback (response) {
console.log(response);
});
return deferred.promise;
},
};
});
Basically, these methods only differ in the path it gets the data from. The data these methods get are handled in the controller. I have been reading a lot of Angular best practices on the side and have been seeing DRY (Don't Repeat Yourself) tips.
I feel the code I have above is too repetitive. Is there a better way of coding this the Angular way?
**Note: I used the yeoman generator to scaffold the directories of my project.