0

$scope.lat と $scope.lng を $resource Venue オブジェクトで使用しようとしています。これにより、REST 通信は常に場所のコンテキストになります。HenriettaCtrl で定義される前に $rootScope の下に渡されているのか、それともまったく渡されているのかさえわかりません。

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
]
4

1 に答える 1

0

$rootScope は $scope まで伝播しますが、$scope に設定されたプロパティは $rootScope まで伝播しません。

この質問に対する受け入れられた回答のように、必要な結果を得るためにイベントを使用する必要がある場合があります: AngularJS multiple uses of Controller and rootScope

于 2013-03-26T12:28:38.930 に答える