ngResource中的factory可以正常工作,但不幸的是结果可以选择JSON索引。同时可以绑定相同的$scope.resultItems变量

控制台日志显示如下:

javascript - 在工厂中使用ngResource时无法选择JSON索引-LMLPHP

无法从ngResource http://codepen.io/anon/pen/dMbRXx使用

从变量http://codepen.io/anon/pen/ONLgNX正常工作



var app = angular.module('app', ['ngResource']);
app.controller('myCtrl', function($scope, categoryFilter) {
  $scope.resultItems = categoryFilter.query();
  $scope.resultIndex = $scope.resultItems[0];
  $scope.resultIndexItem = $scope.resultItems[0].status;
});
app.factory('categoryFilter', function($resource) {
  return $resource("https://maps.googleapis.com/maps/api/geocode/json?address=NY", {}, {
    query: {
      method: "GET"
    }
  });
});

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular-resource/1.5.0/angular-resource.min.js"></script>

<div class="container" ng-app="app" ng-controller="myCtrl">
  <div class="col-xs-12">
    <h3>ngResource result</h3>
    <pre>{{resultItems | json }}</pre>
    <hr />
    <pre>{{resultIndex | json }}</pre>
    <hr />
    <pre>{{resultIndexItem | json}}</pre>
  </div>
</div>

最佳答案

实际上,每个资源都是一个ajax请求,这意味着它是异步的,因此您必须对query函数使用回调。然后你的代码看起来像这样

var app = angular.module('app', ['ngResource']);
app.controller('myCtrl', function($scope, categoryFilter) {
  categoryFilter.query(function(results){
    $scope.resultItems  = results;
    $scope.resultItems.results[0];
$scope.resultIndexItem = $scope.resultItems.status;
  });
});
app.factory('categoryFilter', function($resource) {
  return $resource("https://maps.googleapis.com/maps/api/geocode/json?address=NY", {}, {
    query: {
      method: "GET"
    }
  });
});


link

更新资料

抱歉,如果我想念您的问题,可以使用{}访问.中json中所有json项目,例如,在json results中,status是object,而在[]中表示的项目是数组,可以使用索引对其进行访问。

来自json
javascript - 在工厂中使用ngResource时无法选择JSON索引-LMLPHP
javascript - 在工厂中使用ngResource时无法选择JSON索引-LMLPHP

关于javascript - 在工厂中使用ngResource时无法选择JSON索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35628207/

10-11 22:19
查看更多