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.
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
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).
Si vous ne l'avez pas déjà fait Essayez de configurer une stratégie domaines croisés pour votre application.