Google Map无法从db中拉出latlng,返回undefined

时间:2017-03-30 12:04:17

标签: javascript google-maps google-maps-api-3 mean-stack asynccallback

我试图在我的MEAN堆栈应用中加入googlemaps。我已经设置了一个googleMap指令,并且我从一些种子测试数据中提取了lat lng坐标。如果我对lat lng进行硬编码,那么地图渲染,然后将其从数据库中拉出来我只得到一个灰色方块。因此谷歌地图无法找到显示地图所需的地图。

日程安排是我的资源,我在元数据中包含了相关标签。

我的googleMap指令如下:

angular.module('yogaApp')
  .directive('googleMap', googleMap);

googleMap.$inject = ['$window'];
function googleMap($window) {
  return {
    restrict: 'E',
    replace: true,
    template: '<div class="google-map">Google Map HERE!!</div>',
    scope: {
      schedule: '=',
   },
link: function(scope, element) {
  scope.$watch('schedule', () => {
    if(scope.schedule) {
      console.log(scope.schedule);
      console.log(scope.schedule.location);

      const map = new $window.google.maps.Map(element[0], {
        // center: {lat: 51.4638587, lng: -2.6113025}, THIS WORKS
        center: scope.schedule.location,
        zoom: 15,
        scrollwheel: false
      });
    }
   });
  }
 };
}

标记为schedule的控制台日志返回promsie,但是来自consoleLog(schedule.location)的位置对象(包括lat lng)我得到了未定义。

见屏幕截图:

enter image description here 控制台日志结果

这就是为什么我的地图没有渲染(显然无法显示没有lat lng的地图),我认为这是由于JS的异步性质,所以我可能只需要添加是一个回调函数?

0 个答案:

没有答案