2015-02-18 3 views
0

В настоящее время я разрабатываю систему управления магазином, просто беру и вынимаю из магазина предметы, на данный момент у меня есть сервис в моем приложении AngularJS, который загружает все доступные предметы, что выглядит чем-то как это:Правильное использование углового обслуживания

storeApp.service("partsService", function ($http, $q) { 
    var deferred = $q.defer(); 
    $http.get('loadStoreItems.php').then(function (data) { 
     deferred.resolve(data); 
    }); 

    this.getParts = function() { 
     return deferred.promise; 
    }; 
}); 

Теперь мне нужно реализовать функцию, которая данный конкретный номер детали, введенное имя пользователя, возвращает конкретный элемент с этим номером, так что я могу хранить его в другой массив частей, которые пользователь взял.

Я знаю, что логика достаточно проста, и я мог бы легко реализовать это в контроллере, но мое (ограниченное) понимание заключается в том, что логику в контроллере следует избегать, поэтому я думаю, что это должно быть реализовано как служба ,

Я пытаюсь понять, как я буду заниматься этим, я занимаюсь некоторыми исследованиями, но все еще чувствую себя потерянным. С чего начать?

+0

Услуга полезна для повторного использования логики. Логика в вашем контроллере не проблема – devqon

ответ

0

Угловые услуг:

Лениво инстанцирован - Угловой конкретизирует только услугу, когда компонент приложения зависит от него. Singletons - Каждый компонент, зависящий от службы, получает ссылку на единственный экземпляр, созданный фабрикой услуг.

Это может помочь вам !!!

var app = angular.module("myApp", []); 

    app.service('getDemoService', function($http) { 
     this.getDemoResult = function() { 
     return $http({ 
      method: 'GET', 
      url: baseURL + 'Api/AccountPref/Get/' + uid 
     }); 
     }; 
    }); 

    app.controller("MyDemoController", function($scope, getDemoService) { 
     $scope.resultData = []; 

     getDemoService.getDemoResult().then(function(data) { 
     var items = data.items; 
     //TODO: here your logic 
     }); 
    }); 
0

Возможно использование другого метода запчастейУслуги. например:

this.getPartsByNumber = function(partNumber){ 
    return $http.get('loadStoreItems.php?partNumber=' + partNumber) 
} 

и контроллер можно использовать

partsService.getPartsByNumber(123).then(function(response){ 
    $scope.parts = response.data 
}) 
Смежные вопросы