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

标签 javascript angularjs json ngresource angularjs-factory

factory 中的

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

控制台日志如下所示👇

enter image description here

无法从 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 结果中status 是对象,[] 中表示的项目是一个数组,可以使用索引访问它们。

来自json enter image description here enter image description here

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

相关文章:

javascript - Safari localStorage 不会在 session 之间保留

javascript - 有没有办法将使用条件表达式的 ng-class 与使用字符串语法的 ng-class 混合在一起?

angularjs ui-select 仅捕获键而不捕获下拉实时搜索中的值

Java如何在序列化过程中使用Jackson ObjectMapper连接Item类中的两个字段?

java - 为什么即使我没有运行错误,应用程序也不显示任何内容?

javascript - 悬停保持事件状态,直到鼠标悬停在另一个可悬停对象上

javascript - Google reCaptcha 不会在第一页加载时加载

Javascript - 为 Canvas 创建图像对象数组?

javascript - Angular : Using a directive within another directive

java - 在 Java 中将 JSON 有效负载转换为有用的数据