Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用工厂和AngularJS中的$http访问JSON文件中的数据?_Json_Http_Angularjs_Get_Factory - Fatal编程技术网

如何使用工厂和AngularJS中的$http访问JSON文件中的数据?

如何使用工厂和AngularJS中的$http访问JSON文件中的数据?,json,http,angularjs,get,factory,Json,Http,Angularjs,Get,Factory,我对AngularJS还不熟悉,所以提前道歉是一个基本的解决办法。我希望能够使用AngularJS访问并添加到外部.json文件。当我在工厂内硬编码数据时,它显示得很好。然而,当我尝试使用Angular的$http访问数据时,什么都没有显示 这是我的工厂: sampleApp.factory('findSamplesFactory', function($http) { var samples = $http.get('sample.json').success(function(res

我对AngularJS还不熟悉,所以提前道歉是一个基本的解决办法。我希望能够使用AngularJS访问并添加到外部.json文件。当我在工厂内硬编码数据时,它显示得很好。然而,当我尝试使用Angular的$http访问数据时,什么都没有显示

这是我的工厂:

sampleApp.factory('findSamplesFactory', function($http) {
    var samples = $http.get('sample.json').success(function(response) {
        return response;
    });

    var factory = {};
    factory.getSamples = function() {
        return samples;
    };
    factory.insertSamples = function(sampleNumber, sampleBox, sampleRow, sampleLevel) {
        samples.push({
            number: sampleNumber,
            box: sampleBox,
            row: sampleRow,
            level: sampleLevel
        });
    };

    return factory;
});
这是我设置的控制器

sampleApp.controller('sampleAppController', function ($scope, findSamplesFactory) {
    $scope.samples = findSamplesFactory.getSamples();

    $scope.addSamples = function() {
        var sampleNumber = $scope.newSample.number;
        var sampleBox = $scope.newSample.box;
        var sampleRow = $scope.newSample.row;
        var sampleLevel = $scope.newSample.level
        findSamplesFactory.insertSamples(sampleNumber, sampleBox, sampleRow, sampleLevel);
        $scope.newSample.number = ' ';
        $scope.newSample.box = ' ';
        $scope.newSample.row = ' ';
        $scope.newSample.level = ' ';
    };
});
.json文件验证良好。任何帮助都将不胜感激


编辑:这是我的完整应用程序的一个插件:

我更改了以下内容,它成功了注意更改$scope.samples=data.data

sampleApp.controller('sampleAppController', function ($scope, findSamplesFactory) {

    findSamplesFactory.getSamples().then(function(data){
      $scope.samples = data.data;  // I changed this.
    });
  ...Your code as it is...
  });

检查[plunker]:

我更改了以下内容,它工作了注意更改$scope.samples=data.data

sampleApp.controller('sampleAppController', function ($scope, findSamplesFactory) {

    findSamplesFactory.getSamples().then(function(data){
      $scope.samples = data.data;  // I changed this.
    });
  ...Your code as it is...
  });
检查[plunker]: