I am using angular js with spring mvc to develop a web application.
It is hitting the spring mvc rest service and bringing data to angular js service, but i am unable to see the same data in service.
controllers.js
app.controller('CustomersController', function($scope, customersService){
init();
function init(){
var data =customersService.getCustomers();
$scope.customers = data;
}
$scope.insertCustomer = function(){
var firstName = $scope.newCustomer.firstName;
var lastName = $scope.newCustomer.lastName;
var city = $scope.newCustomer.city;
customersService.insertCustomer(firstName, lastName, city);
$scope.newCustomer.firstName = '';
$scope.newCustomer.lastName = '';
$scope.newCustomer.city = '';
};
$scope.deleteCustomer = function(id){
customersService.deleteCustomer(id);
};
});
app.controller('NavbarController', function ($scope, $location) {
$scope.getClass = function (path) {
if ($location.path().substr(0, path.length) == path) {
return true;
} else {
return false;
}
};
});
customersService.js
app.service('customersService', function($http, $log) {
this.getCustomers = function() {
$http({
method : 'POST',
url : '/CustomerManagementApp/customers/all'
}).success(function(data, status, headers, config) {
$log.log('Done');
angular.forEach(data, function(c) {
$log.log(c.firstName);
});
customers = data;
return customers;
});
};
this.insertCustomer = function(firstName, lastName, city) {
var topID = customers.length + 1;
customers.push({
id : topID,
firstName : firstName,
lastName : lastName,
city : city
});
};
this.getCustomer = function(id) {
};
this.deleteCustomer = function(id) {
};
var customers = {};
});
I am able to print all data using forEach loop in service. But in the controller it shows empty object array Object { }
There is no error in firebug console. I am using POST method. Do let me know if any other piece of code is required.
this.getCustomersreturn a promise and use.thento chain it in theinit().