从Angularjs中的JSON文件中读取数据

时间:2014-08-22 04:41:31

标签: javascript json html5 angularjs

Hai我是Angularjs的新人。我试图从JSON文件中读取数据,但它返回一个奇怪的输出。 这是我的controller.js文件

angular
.module('app')
.controller('homeCtrl',function($scope,Friend){
      $scope.friends=Friend.get();
      console.log("DATA FROM JSON:",$scope.friends);
      $scope.title="Home";       

})

这是我的services.js文件

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;    
            })
           ]          
        }
   }
})

控制台输出

DATA FROM JSON: 
[Object]
0: Object
length: 1
__proto__: Array[0

请帮忙。

1 个答案:

答案 0 :(得分:6)

$ http.get 会返回一个承诺,并且您将返回一个包含该承诺的数组。

请改为:

angular
.module('app.services', [])
.factory('Friend', function ($http) {
    return {
        get: function () {
            console.log("inside function");
            return $http.get('/api/get.json');
        }
    };
});

然后以这种方式使用你的工厂:

.angular
.module('app.controllers', ['app.services'])
.controller('yourCtrl', function ($scope, Friend) {
    Friend.get().then(function (msg) {
        $scope.msg = msg;
    });
});