gpt4 book ai didi

javascript - AngularJS 资源未解析

转载 作者:行者123 更新时间:2023-11-29 16:15:54 26 4
gpt4 key购买 nike

我是 AngularJS 的新手,所以请保持温柔。

我想使用 AngularJS 的 $resource 属性从我的后端检索数据,但是似乎该属性在实际调用完成之前就已加载。

目前我有以下代码:

Controller :

MyApp.controller('IndexCtrl', function IndexCtrl($scope, socket, carsRes) {
console.log(carsRes.cars.get());
$scope.cars = carsRes.cars.get();
});

工厂

.factory('carsRes', function($resource) {
var result = {};
result.cars = $resource('/cars/:id', {}, {
'get': {method: 'GET'},
'save': {method: 'POST'},
'query': {method: 'GET', isArray: true},
'remove': {method: 'DELETE'},
'delete': {method: 'DELETE'}
});

return result;
});

但是当我想在 $scope.cars 中存储 carsRes.cars.get() 时,调用尚未完成,console.log 告诉我 $resolved 仍然是错误的。

如何等待电话解决?我读过一些关于 $q 的内容,但我不是很清楚。

最佳答案

这是因为 resource.get() 是异步的。它立即返回一个空引用,然后在 ajax 调用完成后填充实际数据。

处理结果的最佳方式是使用回调函数:

carsRes.cars.get(function(response){ 
// We now have a completed ajax call, with the response
$scope.cars = response;
});

请参阅 $resource 中的更多示例文档。

关于javascript - AngularJS 资源未解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15988683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com