Данные Fetchin от локального JSON FIle в 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? Спасибо в Advance.

Ответы

Ответ 1

AngularJs < 1,6

Попробуйте сделать успешную и неудачную обратную связь:

$http.get('someFile.json')
      .success(function(data) {
           angular.extend(_this, data);
           defer.resolve();
        })
       .error(function() {
           defer.reject('could not find someFile.json');
        });

AngularJs > 1.6

 $http.get('someFile.json').
  then(function onSuccess(response) {
     angular.extend(_this, data);
     defer.resolve();
  }).
  catch(function onError(response) {
   console.log(response);
  });

Обратитесь: Прочитайте локальный файл в AngularJS

Ответ 2

У вас нет сообщения об ошибке типа "$ 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);
    });  
  }
}]);

Если вы этого не сделали, используйте инструменты веб-разработчика (Ctrl + Shift + я в firefox).

Ответ 3

Если вы еще этого не сделали. Попробуйте настроить crossdomain для своего приложения.