通过 Angular JS 获取外部 json 文件

Fetch an external json file through Angular JS

我正在尝试基于 AngularJS https://github.com/kmaida/angular-faceted-search

实施分面搜索

由于该示例基于 JS 中包含的数据集,因此我尝试远程加载 JSON 文件。 (顺便说一下,angularJS 中的菜鸟总数)。

example中,控制器被定义为:

myApp.controller('MainCtrl', function($scope, Helpers) {

还有2个助手defined

myApp.factory('Helpers', function() {...

我正在尝试在第三个助手中注入 $http,我的代码:

            ,
//below line 30 in https://github.com/kmaida/angular-faceted-search/blob/master/app.js
            fetchData: function (){
                var resultjson=[]
                $http.get('/api/data.json').success(function(data) {
                    resultjson=data
                    console.log(data);
                });
                console.log(resultjson);
                return resultjson;
            }

新定义的变量resultjson在success函数中有一个值,但超出那个点就没有值了。 任何人都可以帮助我正确获取数据吗?感谢支持。

如果您想从 $http 接收数据,则必须使用 promises。现在,在从 api 端点接收到值之前,您正在 returning resultjson。 你应该return承诺,一旦承诺被解决,价值就会在承诺中。

由于 $http return 的承诺,您可以直接 return 它,而无需将其包装在另一个承诺中。

fetchData: function (){
               return $http.get('/api/data.json');
            }

并且您可以访问控制器中的数据并分配给范围:

Helpers.fetchData().then(function(data){
    $scope.items = data.data;
})