Угловой экземпляр фабрики

0

Я немного смущен с Угловым. У меня две фабрики, причем код выглядит почти так же, потому что они выполняют операции 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 не выглядит нормально для меня.

Хорошо, я описал это довольно плохо.

РЕШЕНИЕ Возможно ли и в хорошей форме повторно использовать тот же завод данных в Угловом?

  • 3
    какой у Вас вопрос?
  • 0
    Xxhczvhhmmbjnbbjmbijbmni nj
Теги:
refactoring

2 ответа

0

Заводы

Они позволяют вам совместно использовать код между контроллерами, а также делать 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

Надеюсь, это проливает свет на фабрики для вас.

  • 0
    Я хотел бы добавить пример того, как на самом деле создать экземпляр фабрики, а не показать, как определить фабрику.
-1

Я знаю, как работают фабрики, но я не хочу добавлять кучу функций, отвечающих за каждый модуль. Я хочу сделать сервис, который заменит патчи на $ http calls на основе предоставленного имени модуля в конструкторе. ex 'orders' будет запрашивать: $ http.post('/api' + 'orders' + '/lazy')...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню