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.
Sure. Try this code
function init(){
customersService.getCustomers().then(function(response){
$scope.customers = response.data;
});
}
this.getCustomers = function() {
var promise = $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;
});
return promise;
};
promise - as an interface for interacting with an object that represents the result of an action that is performed asynchronously, and may or may not be finished at any given point in time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With