I am a little new to angular. I created the Employee Search service module. Here is the code ...
// Service for employee search app.service('employeeSearchService', function($http, resourceServerAddress){ this.empList = []; // Method for clearing search employee list this.clearEmpList = function(){ this.empList = []; } // Method for fetching employee search list this.fetchEmpList = function(){ return this.empList; } // Method for making employee search this.searchEmpList = function(empName){ var postData = { empName:empName, }; $http({ method: 'POST', url: resourceServerAddress, data : postData }).then(function successCallback(response) { console.log('Response Data : '+response); if(response['data']['status'] === 'success'){ console.log('Response received successfully with status=success'); if(response['data']['data'].length) { console.log('matches found for employee search'); this.empList = response; } else { console.log('no matches found for employee search'); this.empList = []; } } if(response['data']['status'] === 'error'){ console.log('Response received successfully with status=error'); } }, function errorCallback(response) { console.log('Error occur at time of processing request'); }); } });
Then I use the following code in my controller to retrieve data from this Service module.
employeeSearchService.searchEmpList(empName); empSearchResponseList = employeeSearchService.fetchEmpList(); console.log('Search response from server module : '+empSearchResponseList);
I can see on my Chrome console that I receive data from my AJAX call with all the console messages from the Service module. But they cannot catch this data in the controller variable.
I think so, I use 'searchEmpList ()' and 'fetchEmpList ()' in my controller, it is not. But, he canβt find out how to change it.
Need some guidance -.-
--- updated controller code ----
// Controller for application Home route app.controller("HomeController", function($scope, $state, $location, $ionicHistory, $ionicSideMenuDelegate, $http, resourceServerAddress, employeeSearchService) { console.log('At home controller'); // Check application session. If it found not exist redirect user to login page if(window.localStorage.getItem("access_token") === "undefined" || window.localStorage.getItem("access_token") === null) { $ionicHistory.nextViewOptions({ disableAnimate: true, disableBack: true }); console.log('Redirecting user to login page-222'); $state.go("login"); } $scope.empName = ''; $scope.alertMsgBox = false; $scope.alertMsgText = ''; $scope.employees = []; $scope.resourceServerAddress = resourceServerAddress; var empSearchResponseList=null; // Method for employee search $scope.searchEmployee = function(form){ console.log('Employee name entered : '+$scope.empName); console.log('Employee name character length : '+$scope.empName.length); if($scope.empName.length >= 3 ){ var postData = { Emp_Name:$scope.empName, access_token:window.localStorage.getItem('access_token'), session_id:window.localStorage.getItem('session_id') }; $http({ method: 'POST', url: resourceServerAddress, data : postData }).then(function successCallback(response) { console.log('Response Data : '+response); if(response['data']['status'] === 'success'){ console.log('Response received successfully with status=success'); if(response['data']['data'].length) { console.log('matches found for employee search'); $scope.employees = response['data']['data']; $scope.alertMsgBox = false; } else { console.log('no matches found for employee search'); $scope.alertMsgBox = true; $scope.employees = []; $scope.alertMsgText = 'No matches found.'; } } if(response['data']['status'] === 'error'){ console.log('Response received successfully with status=error'); } }, function errorCallback(response) { console.log('Error occur at time of processing request'); }); } } // Method for showing employee profile $scope.showEmpProfile = function(empId){ console.log('HomeCtrl - click on profile image of emp id : '+empId); // Redirecting to home page $state.go('app.emp-profile', {empId:empId}); } });