2013-03-10 71 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

回答