I have controller which fetches some data and adds some extra items based on the information. The information should be searchable. I have working code for that now, but was wondering what is the best way to reuse the code? Is it directives? factory? Here is the code :
app.controller('searchProducts', function($scope, $http) { $scope.search = function(val) { $scope.val = val; //from here let query; if(!$scope.val) { query = BASE_URL+"Products"; } if($scope.val) { query = encodeURI("Products?$filter=contains(ProductName,\'"+val+"\')"); query = BASE_URL+query; } $http.get(query) .then(function(response) { $scope.rawData = response.data; angular.forEach($scope.rawData.value, function(value) { //looping the data, replacing the IDs with actual data from the source //Getting actual Supplier using SupplierID $http.get("http://services.odata.org/V4/Northwind/Northwind.svc/Suppliers("+value.SupplierID+")/CompanyName/$value") .then(function(response) { value.Supplier = response.data; }) //Getting actual Category using CategoryID $http.get("http://services.odata.org/V4/Northwind/Northwind.svc/Categories("+value.CategoryID+")/CategoryName/$value") .then(function(response) { value.Category = response.data; }) }); }) //to here } //is repeated here });