从angularjs中的本地JSON文件中获取数据

时间:2015-11-17 09:13:54

标签: json angularjs

我想从我本地计算机上的JSON文件中获取数据。但我无法获得数据。它显示$ http。

的一些跨域错误

这是我的代码。

angular.module('myApp',[])
  .controller('myCtrl', function ($scope, webtest) {
     webtest.fetch().then(function (data) {
         $scope.accounttype = data;
     })
});

.factory('webtest', function($q, $timeout, $http) {
    var Webtest = {
        fetch: function(callback) {
            return $timeout(function() {
                return $http.get('webtest.json')
                .then(function(response) {
                      return response.data;
                });
            }, 30);
         }
    };
    return Webtest;
}); 

任何人都可以帮我如何显示本地JSON文件中的数据? 在此先感谢。

3 个答案:

答案 0 :(得分:37)

非常简单,如

$http.get('phones/phones.json').then(function(response) {
   $scope.phones = response.data;
});

参见:http://stackoverflow.com/questions/21589340/read-local-file-in-angularjs

答案 1 :(得分:3)

您是否收到“$ http:未定义”的错误消息?

我尝试使用控制器,这是有效的:

var ngApp = angular.module("ngApp", []);

ngApp.controller('myController', ['$http', function($http){
  var thisCtrl = this;

  this.getData = function () {
  this.route = 'webtest.json';
  $http.get(thisCtrl.route)
    .success(function(data){
      console.log(data);
    })
    .error(function(data){
      console.log("Error getting data from " + thisCtrl.route);
    });  
  }
}]);

如果还没有,请使用Web开发人员工具(在Firefox中按Ctrl + Shift + I)。

答案 2 :(得分:2)

如果你还没有这样做的话。尝试为您的应用设置crossdomain政策。