如何将参数传递到Angular $资源工厂?

时间:2013-03-10 20:53:27

标签: angularjs coffeescript

我正在尝试在$ resource Venue对象中使用$ scope.lat和$ scope.lng,以便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
]

1 个答案:

答案 0 :(得分:0)

$ rootScope将向下传播到$ scope,但在$ scope上设置的属性不会传播到$ rootScope。

您可能需要使用事件来获得所需的结果,例如此问题的已接受答案:AngularJS multiple uses of Controller and rootScope