我在javascript上非常糟糕,而且对Angular还是很陌生,所以请耐心等待。
我的服务器返回了以下内容:
{"latitude": 3.172398, "name": "Event", "longitude": 101.6739005}
services.js
var mapModule = angular.module('map.services', ['ngResource']);
mapModule.factory('Event', function($resource) {
return $resource('/custom_api/get_event_details/:eventId/',
{eventId: '@id'});
});
controller.js
function mapCtrl($scope, Event) {
var eventDetail = Event.get({eventId: $scope.eventId});
console.log(eventDetail);
console.log(eventDetail.latitude);
}
我正在尝试通过
eventDetail.latitude
访问服务器返回的json,但我正在获取undefined
。在控制台中,
console.log(eventDetail)
看起来像:e {$get: function, $save: function, $query: function, $remove: function, $delete: function}
latitude: 3.172398
longitude: 101.6739005
name: "abc"
__proto__: e
我知道
eventDetail
是resource
实例,但是如何直接获取值呢?如果在 Controller 中设置了
$scope.eventDetail
,则可以通过模板中的{{ eventDetail.latitude }}
访问它。我到底如何在 Controller 中执行此操作?
最佳答案
从the docs:
因此,除非将其放入回调函数中,否则您的日志记录将无法正常工作,如下所示:
function mapCtrl($scope, Event) {
Event.get({eventId: $scope.eventId},function(eventDetail){
//on success callback function
console.log(eventDetail);
console.log(eventDetail.latitude);
});
}
如果您出于某种原因不想使用
resource
,可以使用 $http
service:$http.get(url).then(function(response){console.log(response.data);});
关于javascript - Angular :访问 Controller 中的资源值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16196121/