gpt4 book ai didi

javascript - Angular $resource 数据可以查看,但不能在代码中查看

转载 作者:行者123 更新时间:2023-11-28 07:23:25 25 4
gpt4 key购买 nike

我是一个有棱 Angular 的菜鸟,对一个特定的问题感到非常沮丧。

我有一个从服务器返回数据的$resource,其中包含键/值对,即detail.name、detail.email等。

我可以使用 {{detail.name}} 表示法在 View 上访问此信息,但我无法在代码中访问它,这让我发疯,因为我需要这些数据来做东西与.

如何在后台访问它?

这是生成数据的代码:

mydata = Appointment.get({id: $stateParams.id}, function(data){
geocoder.geocode(data);
$scope.detail = data;
});

在 View 上我有以下内容:

<address class="text-left"> 
{{detail.address_1}}</br>
{{detail.city}}</br>
{{detail.postcode}}</br>
</address>
</hr>
<p> {{detail.lat}}</p>
<p> {{detail.lng}}</p>
<p> {{center}}</p>

这一切都好。

但是,如果我在 $resource 回调中添加 console.log($scope.detail.lat) ,我会得到未定义的结果。

这是资源定义:

angular.module('MyApp')
.factory('Appointment', function($resource){
return $resource('/api/admin/:id', { id: "@_id" }, {
query: {method:'GET', isArray:true},
update: { method:'PUT' }
});
})

还有地理编码器工厂(如果有人感兴趣的话):

angular.module('MyApp')
.factory('geocoder', ['$http','$state', function($http, $state){

var geocoder ={};

geocoder.geocode = function (formData){
var myformData = {};
var address = formData.address_1+', '+formData.city+', '+formData.postcode;

var key = 'AIzaSyACVwB4i_6ujTrdjTMI-_tnsDrf6yOfssw';

$http.get('https://maps.googleapis.com/maps/api/geocode/json?address='+address+'&key='+key).
success(function(results, status, headers, config) {
var results = results.results[0];
formData.lat = results.geometry.location.lat;
formData.lng = results.geometry.location.lng;
myformData = formData;
return myformData;

// this callback will be called asynchronously
// when the response is available
}).
error(function(results, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
}


return geocoder;

}])

有人可以帮忙吗?

最佳答案

您可以利用从 $resource 对象返回的 promise ,然后在 Controller 中利用该 promise 。

工厂

angular.module('MyApp')
.factory('Appointment', function($resource){
return $resource('/api/admin/:id', { id: "@_id" }, {
query: {method:'GET', isArray:true},
update: { method:'PUT' }
});
})

Controller

mydata = Appointment.get({id: $stateParams.id}).$promise;
mydata.then(function(data){
geocoder.geocode(data);
$scope.detail = data;
});

关于javascript - Angular $resource 数据可以查看,但不能在代码中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30034982/

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