无法通过在线json文件在工厂中提取数据

时间:2016-02-03 05:21:59

标签: javascript angularjs json html5

我创建了一个名为 service.js

的工厂
myAppServices=angular.module('myAppServices',['ngResource']);

myAppServices.factory('ProfileData',['$resource', function($resource){
    return $resource('http://www.w3schools.com/json/myTutorials.txt', {}, {
        query: {method: 'GET', isArray: false}
    });
}]);

我的控制器是:

myAppControllers.controller('ProfileListCtrl',['$scope', 'ProfileData', '$timeout', function($scope, ProfileData, $timeout) {
    var promise = ProfileData.query();
    promise.$promise.then(function(response) {
        $scope.data= response;
        console.log($scope.data);
});    
    }]);

由于无法获取数据,我在这里没有得到任何控制台。 请帮帮我。

  • 注意

如果我使用保存的文件地址而不是json文件的在线网址,那么它的工作

1 个答案:

答案 0 :(得分:0)

<强> controller.js

(function () {
    angular
            .module('app')
            .controller('ProfileListCtrl', ProfileListCtrl);

    ProfileListCtrl.$inject = ['$scope', 'ProfileDataFactory'];

    function ProfileListCtrl($scope, ProfileDataFactory) {
        $scope.data = [];
        function init() {
            ProfileDataFactory.get().then(function (response) {
                angular.copy(response, $scope.data);
                console.log(response);
            });
        }

        init();
    }
}());

<强> factory.js

(function () {
    angular
            .module('app')
            .factory('ProfileDataFactory', ProfileDataFactory);

    ProfileDataFactory.$inject = ['$http'];

    function ProfileDataFactory($http) {

        var self = this;

        self.get = $http.get('http://www.w3schools.com/json/myTutorials.txt').then(function (response) {
            return response.data;
        });

        return self;

    }
}());