angularjs 使用 $resource 从 Json 获取数据
angularjs get data from Json using $resourse
下午好!学习Angularjs。下面是项目的结构。
我有一项从 json
读取数据的服务
var WebKrServices = angular.module('WebKrServices', ['ngResource']);
WebKrServices.factory('DataPlant', ['$resource',
function($resource){
return $resource('plants/:plantId.json', {}, {
query: {method:'GET', params:{plantId:'plants'}, isArray:true}
});
}]);
和控制器
var WebKrControllers = angular.module('WebKrControllers', []);
WebKrControllers.controller('PlantsCtrl', ['$scope', 'DataPlant',
function($scope, DataPlant) {
$scope.plants = DataPlant.query();
}]);
将此信息传输到 html
<div ng-repeat="plant in plants">
<h2 class="text-center">{{plant.name}}</h2>
<a href="#/plants/{{plant.id}}"></a>
</div>
而且,事实上的问题。在 html 中,我看到来自 json 的数据,当访问植物时,控制器看到一个空对象?
for (var p in plants) {
. . .
}
如何从控制器中获取植物的数据?
谢谢大家的回答。
因为是异步调用。在 $scope.plants = DataPlant.query();
之后,植物在数据到达之前保持未定义状态(好吧,它不完全是未定义的,您可以在调试器中检查它)。当数据到达时 - $scope.plants 得到解析并更新 html。 运行 数据到达后的一些代码,使用回调:
$scope.plants = DataPlant.query(function(response) {
console.log($scope.plants);
}, function (response) {
console.log('Error');
});
下午好!学习Angularjs。下面是项目的结构。 我有一项从 json
读取数据的服务var WebKrServices = angular.module('WebKrServices', ['ngResource']);
WebKrServices.factory('DataPlant', ['$resource',
function($resource){
return $resource('plants/:plantId.json', {}, {
query: {method:'GET', params:{plantId:'plants'}, isArray:true}
});
}]);
和控制器
var WebKrControllers = angular.module('WebKrControllers', []);
WebKrControllers.controller('PlantsCtrl', ['$scope', 'DataPlant',
function($scope, DataPlant) {
$scope.plants = DataPlant.query();
}]);
将此信息传输到 html
<div ng-repeat="plant in plants">
<h2 class="text-center">{{plant.name}}</h2>
<a href="#/plants/{{plant.id}}"></a>
</div>
而且,事实上的问题。在 html 中,我看到来自 json 的数据,当访问植物时,控制器看到一个空对象?
for (var p in plants) {
. . .
}
如何从控制器中获取植物的数据?
谢谢大家的回答。
因为是异步调用。在 $scope.plants = DataPlant.query();
之后,植物在数据到达之前保持未定义状态(好吧,它不完全是未定义的,您可以在调试器中检查它)。当数据到达时 - $scope.plants 得到解析并更新 html。 运行 数据到达后的一些代码,使用回调:
$scope.plants = DataPlant.query(function(response) {
console.log($scope.plants);
}, function (response) {
console.log('Error');
});