web-dev-qa-db-fra.com

Récupération des données du fichier JSON local dans angularjs

Je veux récupérer les données du fichier JSON qui se trouve sur mon ordinateur local. Mais je ne parviens pas à obtenir les données. Il montre une erreur interdomaine pour $ http.

Voici mon code.

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

Quelqu'un peut-il m'aider, s'il vous plaît, à afficher les données d'un fichier JSON local? Merci d'avance.

21
Amit

C'est très simple comme

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

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

37
Arun

Vous n'avez pas un message d'erreur comme "$ http: n'est pas défini"?

J'ai essayé avec un contrôleur, ça marche:

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

Si ce n'est pas le cas, utilisez les outils de développement Web (Ctrl + Maj + I sous Firefox).

3
Pico12

Si vous ne l'avez pas déjà fait Essayez de configurer une stratégie domaines croisés pour votre application.

2
Hardik Patel