2013-03-10 72 views
0

我想在我的$资源Venue对象中使用$ scope.lat和$ scope.lng,以便REST通信将始终位于某个位置的上下文中。如果它们被传递在$ rootScope他们在HenriettaCtrl定义之前,我不能告诉,或者如果他们甚至传递在所有:

henriettaApp = angular.module('henriettaApp', ["ngResource"]) 

henriettaApp.factory "Venue", ["$resource", "$rootScope", ($resource, $rootScope) -> 
    console.log($rootScope.lat) 
    console.log($rootScope.lng) 
    $resource("/venuesNear/:id",{lat:$rootScope.lat,lng:$rootScope.lng,id:"@id"}, {update: {method:"PUT"}}) 
] 

@HenriettaCtrl = ["$scope", "Venue", ($scope, Venue) -> 
    saveLocation = (position) -> 
    $scope.lat = position.coords.latitude 
    $scope.lng = position.coords.longitude 
    console.log($scope.lat) 
    $scope.streams = Venue.query() 
    navigator.geolocation.getCurrentPosition saveLocation 
] 
+0

可能的最好创建一个'service'创建了'position'对象,然后可以传递给您的'Venue服务'和'控制器'都作为依赖项 – charlietfl 2013-03-10 21:39:59

回答