javascript - 在 Angular 上迭代服务返回的 JSON

标签 javascript json angularjs angularjs-resource

我正在尝试遍历并按 id 进行搜索,并通过 Controller 中的 $resource 从如下所示类型的 JSON 对象返回与 id 对应的其他值。我不明白在这种情况下我哪里错了?请帮忙!

这是 Controller

appSettings.controller('applistController', ['$scope', 'AppListService',
    function($scope, AppListService){
    // Have to iterate here to search for an id, how?
    // The Above app.json file is returned by the ApplistService(not showing the factory here as it works already.)
        $scope.allapps = AppListService.listAllApps().get();
    // console.log($scope.allapps.data) returns undefined as so does console.log($scope.allapps.length).
    // Where am I wrong?
    }
]);

JSON 的类型是:

{"data":[
    {
      "id":"files_trashbin",
      "name": "TrashBin",
      "licence":"AGPL",
      "require":"4.9",
      "shipped": "true",
      "active":true
    },
    {
      "id":"files_external",
      "name": "External Storage",
      "licence":"AGPL",
      "require":"4.93",
      "shipped":"true",
      "active":true
    }
    ],
  "status":"success"
}

最佳答案

我想 AppListService.listAllApps().get(); 会返回 promise。听起来您在获得实际数据之前尝试打印。

我会使用以下方法:

var appSettings = angular.module('myModule', ['ngResource']);

appSettings.controller('applistController', ['$scope', 'AppListService',
function($scope, AppListService){

     AppListService.listAllApps()
                        .then(function (result) {
                           $scope.allapp = result;                           
                        }, function (result) {
                            alert("Error: No data returned");
                        });  

}]);


appSettings.factory('AppListService', ['$resource','$q',  function($resource, $q) {

  var data = $resource('somepath', 
         {},
        { query: {method:'GET', params:{}}}
                 );


       var factory = {

            listAllApps: function () {
              var deferred = $q.defer();
              deferred.resolve(data);
             return deferred.promise;
            }

        }
        return factory;
}]);

关于javascript - 在 Angular 上迭代服务返回的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19887626/

相关文章:

java - 解析 json 对象并附加到 recyclerview

javascript - 引导后动态地将 Controller 分配给元素

javascript - jQuery 单个脚本文件不特定于*此*页面 - 显示 "undefined is not a function"

javascript - JavaScript 最快的 JSON 解析器是什么?

python - 使用 pandas 将两个不同的数据帧转换为一个 json 文件

javascript - select 中的默认选项和发生的 http

angularjs - Angular Material 是否有详细的文本框(ala bootstrap alert)

javascript - 使用 React 和 Axios 更新 Firebase 中的数据

javascript - 如何从另一个函数内部的 firebase 函数内部访问一个函数

javascript - 如何在 Angular 中用逗号替换换行符