Angular js资源调用以获取数组

时间:2016-07-02 07:35:32

标签: javascript angularjs json ngresource angularjs-ng-resource

创建工厂,它将返回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();
    }

  }]);

3 个答案:

答案 0 :(得分:3)

你必须等待,直到请求完成并且&在您需要使用.$promise.then超过$resource.query函数调用之后。这样你就可以调用API调用成功的函数。

loadJsonService.getData().query().$promise.then(function(res){ //success function
   $scope.productDetails = res;
}, function(error){ //error function
   console.log(error);
})

答案 1 :(得分:0)

您必须在getData函数中设置$ http请求,如此

$http.jsonp("json/productDetails.json")
        .success(function(response) {
          callback(response);
        });

答案 2 :(得分:0)

尝试内置{ method: 'GET', params: { key: value }, isArray: true, cache: true // if you want to cache } 方法。 如果你想编写自己的get方法,请执行以下操作,

foreach($array as $value)
{
   echo $form->field($value, 'Color_1')->widget(ColorInput::classname(), [])->label(false);
}