在引导程序之后将值注入模块

时间:2014-06-08 14:16:56

标签: angularjs google-maps

我想使用angular-ui for google maps。从示例中,它传递硬编码坐标。

$scope.mapOptions = {
  center: new google.maps.LatLng(35.784, -78.670),
  zoom: 15,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};

然后在指令上使用它。

<div id="map_canvas" ui-map="myMap" class="map" ... ui-options="mapOptions">
</div>

但我需要将坐标作为用户位置,为此,我需要使用navigator.geolocation.getCurrentPosition(),我在回调中得到了坐标。

我想的是:

navigator.geolocation.getCurrentPosition(function(result) {
    angular.bootstrap(myElement, ['myModule']); // I need a way to inject "result" to the module
}, function(error) {
  // fallback to default coordinate.
});

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在引导之前将常量添加到模块:

angular.module('myModule', [])
.controller('MyController', function($scope, coordinates){
  $scope.coordinates = coordinates;
})

navigator.geolocation.getCurrentPosition(function(result) {
    angular.module('myModule').constant('coordinates', result);
    angular.bootstrap(document, ['myModule']);
}, function(error) {
  // fallback to default coordinate.
});

Demo