Данные 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 для своего приложения.