我创建了一个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();
});
但我不知道这是否是正确的做法。如果您有更好的解决方案,请随时发表评论。