Я немного смущен с Угловым. У меня две фабрики, причем код выглядит почти так же, потому что они выполняют операции CRUD на двух разных объектах в db, и я хочу сделать их СУХОЙ.
Поэтому у меня есть идея переместить общую логику для разделения службы, и я хочу, чтобы она работала примерно так:
angular.module('app').factory('first',['commonService',function(commonService){
return new commonService('someSpecificVariable');
}])
и обслуживание:
angular.module('app').service('commonService',['someDep1',function(someDep1,someSpecificVariable){
var something = someSpecificVariable;
}]);
Я посмотрел на поставщиков, но мне нужно что-то создать. Как я могу это достичь?
Другими словами, я хочу создать фабрику, ответственную за все запросы обработки crud для всех модулей приложений, потому что писать многие фабрики для обработки http/crud не выглядит нормально для меня.
Хорошо, я описал это довольно плохо.
РЕШЕНИЕ Возможно ли и в хорошей форме повторно использовать тот же завод данных в Угловом?
Заводы
Они позволяют вам совместно использовать код между контроллерами, а также делать HTTP-звонки в ваш API. Они действительно хотят сделать код многократного использования, который вы можете создать в своих контроллерах, чтобы сделать вашу жизнь проще и ваши контроллеры чище.
Простой пример
.factory('FindFriend', function ($http, $rootScope) {
return {
find: function (phone) {
return $http.get('http://130.211.90.249:3000/findFriend', { params: {phone:phone}})
},
add: function (id) {
return $http.get('http://130.211.90.249:3000/addFriend', { params: {friendid:id, user_id: $rootScope.session} })
},
deleteFriend: function (id) {
return $http.get('http://130.211.90.249:3000/deleteFriend', {params:{idfriends: id}})
}
}
})
объяснение
Итак, мы можем увидеть фабрику под названием FindFriend
. На заводе есть 3 метода, которые можно найти и удалить. это разные HTTP-вызовы (в вашем коде они не должны все получать методы, но это какой-то старый код, который я написал).
Их можно создать, добавив их в верхнюю часть контроллера, а затем называя там функции, такие как FindFriend.add
Надеюсь, это проливает свет на фабрики для вас.
Я знаю, как работают фабрики, но я не хочу добавлять кучу функций, отвечающих за каждый модуль. Я хочу сделать сервис, который заменит патчи на $ http calls на основе предоставленного имени модуля в конструкторе. ex 'orders' будет запрашивать: $ http.post('/api' + 'orders' + '/lazy')...