Reading data from JSON file in Angularjs

37,805

$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;
    });
});
Share:
37,805
shellakkshellu
Author by

shellakkshellu

stay hungry stay foolish

Updated on August 22, 2020

Comments

  • shellakkshellu
    shellakkshellu almost 4 years

    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.

  • shellakkshellu
    shellakkshellu almost 10 years
    It works fine when i change argument msg to msg.data,thanks bro.
  • shellakkshellu
    shellakkshellu over 9 years
    Can you give an answer for this? (stackoverflow.com/questions/25831459/…)