谷歌地图在angularjs中懒惰加载动态地理坐标更新



我创建了一个directive,用于使用angularjs:延迟加载google maps

http://plnkr.co/edit/1NpquJ?p=preview

取自:AngularJS-在多个地图的指令中加载谷歌地图脚本async

问题:如何将lat/long值动态绑定到控制器,以便每次控制器中的值更改时,映射也会更改视图?(例如,后端调用提供新的lat/long值,然后必须将其推送到map元素)。

我添加到地图指令:

  scope: {
      lat: '=',
      long: '='
  }

并将其与双向绑定

<div lat="{{lat}}" long="{{long}}" />

控制器:

$http..getBackendData()
    .then(function(data) {
        $scope.lat = data.lat;
        $scope.long = data.long;
    }
);
...

无论如何,地图只显示初始值,但从不更新。示例:http://plnkr.co/edit/U31poBpHTfFVQsipLrI4?p=preview

目前可以在latitude:上添加$watch

http://plnkr.co/edit/eS18B0Te2l5qaf6wvQIH?p=preview

scope.$watch('lat', function (newVal) {
    initializeMap();
});

但我不知道这是否是正确的做法。如果您有更好的解决方案,请随时发表评论。

最新更新