Javascript 在angularjs中加载json

Javascript 在angularjs中加载json,javascript,jquery,angularjs,json,Javascript,Jquery,Angularjs,Json,我的代码在javascript代码中读取json格式的文本,我希望从json文件中读取它。这是我的代码,如何更改它以读取文件? 我发现这段代码使用了json文件的解析,但如何才能将thos转换到变量$scope.Items app .controller('HomeController', function ($scope, $rootScope, $location, HomeService) { $scope.Items = [{ "Platform": "Plumbing

我的代码在javascript代码中读取json格式的文本,我希望从json文件中读取它。这是我的代码,如何更改它以读取文件? 我发现这段代码使用了json文件的解析,但如何才能将thos转换到变量$scope.Items

app
.controller('HomeController', function ($scope, $rootScope, $location, HomeService) {
    $scope.Items =  [{
    "Platform": "Plumbing",
    "Details": [{
        "Company": "School",
        "Cost": {
            "Days": 6,
            "Person": 5,
            "Cost": 100

        }
    }]
}, {
    "Platform": "Electrical Work",
    "Details": [{
        "Company": "School",
        "Cost": {
            "Days": 2,
            "Person": 4,
            "Cost": 200

        }
    }]
}, {
    "Platform": "Cleaning",
    "Details": [{
        "Company": "School",
        "Cost": {
            "Days": 1,
            "Person": 2,
            "Cost": 30
        }
    }]
}
}];
    $scope.GetItems = function () {
        HomeService.GetItems().then(function (response) {
            $scope.Items = response.data;
        }, function () { console.log("GetItems Failed !") });
    };
    //$scope.GetItems();
    $scope.cart1 = { Days: 0, Person: 0, Cost: 0 };
    $scope.cart2 = { Days: 0, Person: 0, Cost: 0 };

    $scope.AddCart = function (id) {
        angular.forEach($scope.Items, function (value, key) {
            if (value.Platform == id) {
                angular.forEach(value.Details, function (value1, key1) {
                    if (value1.Company == "School") {
                        $scope.cart1.Days += value1.Cost.Days;
                        $scope.cart1.Person += value1.Cost.Person;
                        $scope.cart1.Cost += value1.Cost.Cost;
                    }
                });
            }
        });
    };
})
.factory('HomeService', function ($http) {
    var serv = {};
    serv.GetItems = function (data) {
        return $http.post('http://www.Schoolsite.com/Items.json', data);
    };
    return serv;
});

从文件读取是JavaScript中的一个异步操作——这意味着您必须以某种方式检查文件是否已加载,并且只有在该条件为真时才能处理结果

在JavaScript中很简单,只需使用promise或callback来处理异步加载的数据。如果您需要单向数据绑定,最好的选择是使用指令
ngIf
,仅当数据已经加载时才显示页面的关键部分

读取JSON文件itslef的操作是由内部Angular的服务
$http
完成的。应该是这样的:

JS

HTML


加载。。。
{{Items}json}

为什么代码不起作用?你得到了什么错误等?Michael,上面的代码很好用,但我想从文件中读取JSON。现在我可以从json文件中读取值了。谢谢,加载很好。@Vinod没问题,很高兴我能帮上忙。
app
   .controller('HomeController', function ($scope, $http) {

      $scope.areItemsLoaded = false;
      $scope.Items = [];

      $http
         .get('myItems.json')
         .then(function (response) {
            $scope.Items = response.data;
            $scope.areItemsLoaded = true;

            // work with $scope.Items here
         });

      // [...] - the rest of your code
   });
<div ng-controller="HomneController">
   <div ng-if="!areItemsLoaded">
      Loading...
   </div>
   <div ng-if="areItemsLoaded">
      {{Items | json}}
   </div>
</div>