在工厂中使用 ngResource 时无法 select JSON 索引
Not able to select JSON index when using ngResource in factory
ngResource
in factory
工作正常但不幸的是结果能够 select JSON
索引。同时可以绑定同一个$scope.resultItems
变量
控制台日志是这样的
无法使用 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"
}
});
});
更新
抱歉,如果我没读到你的问题,{}
中 json 中的所有项目都将是一个对象,可以使用 .
访问,例如 json results
和 status
是对象, []
中表示的项目是一个数组,可以使用索引访问它们。
来自json
ngResource
in factory
工作正常但不幸的是结果能够 select JSON
索引。同时可以绑定同一个$scope.resultItems
变量
控制台日志是这样的
无法使用 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"
}
});
});
更新
抱歉,如果我没读到你的问题,{}
中 json 中的所有项目都将是一个对象,可以使用 .
访问,例如 json results
和 status
是对象, []
中表示的项目是一个数组,可以使用索引访问它们。
来自json