web-dev-qa-db-ja.com

angularjsのローカルJSONファイルからデータを取得する

ローカルマシンにある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ファイルからデータを表示する方法を教えてください?前もって感謝します。

21
Amit

とてもシンプルです

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

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

37
Arun

「$ 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)を使用してください。

3
Pico12

まだ行っていない場合。アプリケーションに crossdomain ポリシーを設定してみてください。

2
Hardik Patel