Reputation: 5848
Hai i am new in Angularjs. I am trying to read data from JSON file, But it returns a strange output. Here is my controller.js file
angular
.module('app')
.controller('homeCtrl',function($scope,Friend){
$scope.friends=Friend.get();
console.log("DATA FROM JSON:",$scope.friends);
$scope.title="Home";
})
Here is my services.js file
angular
.module('app')
.factory('Friend',function($http){
return {
get:function(){
console.log("inside function");
return [
$http.get('/api/get.json').then(function(msg){
return msg.data;
})
]
}
}
})
console output is
DATA FROM JSON:
[Object]
0: Object
length: 1
__proto__: Array[0
Please help.
Upvotes: 3
Views: 37958
Reputation: 20394
$http.get returns a promise and you're returning an array containing that promise.
Do this instead:
angular
.module('app.services', [])
.factory('Friend', function ($http) {
return {
get: function () {
console.log("inside function");
return $http.get('/api/get.json');
}
};
});
Then use your factory this way:
.angular
.module('app.controllers', ['app.services'])
.controller('yourCtrl', function ($scope, Friend) {
Friend.get().then(function (msg) {
$scope.msg = msg;
});
});
Upvotes: 6