0

创建的工厂将返回 json 数据并从控制器调用它,但它是空的。不知道我哪里弄错了。没有控制台错误,并且网络中的json 也在加载。

    'use strict';
var app = angular.module('angularJson', ['ngResource']);

    app.factory('loadJsonService', ['$resource', function ($resource) {
        return {
            getData: function () {
                return $resource('json/productDetails.json');
            }
        };
    }])

  app.controller('angularJsonCtrl',['$scope', 'loadJsonService',function($scope, loadJsonService){

    $scope.loadProducts = function(noOfData){
        $scope.productDetails = [];
        $scope.productDetails = loadJsonService.getData().query();
    }

  }]);
4

3 回答 3

3

.$promise.then在您需要使用over$resource.query函数调用之后,您必须等待直到请求完成并在那里。这样您就可以放置在 API 调用成功时调用的函数。

loadJsonService.getData().query().$promise.then(function(res){ //success function
   $scope.productDetails = res;
}, function(error){ //error function
   console.log(error);
})
于 2016-07-02T07:45:59.593 回答
0

您必须像这样在 getData 函数中设置 $http 请求

$http.jsonp("json/productDetails.json")
        .success(function(response) {
          callback(response);
        });
于 2016-07-02T07:43:44.957 回答
0

尝试内置query方法。如果您想编写自己的 get 方法,请执行以下操作,

{
   method: 'GET',
   params: {
   key: value
},
isArray: true,
cache: true // if you want to cache
}
于 2016-07-02T08:28:56.317 回答