angular 使用传单插件等的传单 js

angular leaflet js using the leaflet plugins and more

我正在使用 leaflet 和 angularJS,因此 angular-directive for leaflet。我现在想使用自定义标记。例如这些船标记: https://github.com/thomasbrueggemann/leaflet.boatmarker 。 或者例如对于 'leaflet sliders' (https://github.com/dwilhelm89/LeafletSlider) 我需要使用 addControl 或 L.geoJson().

我现在的问题是,当我使用 angular 指令时,我没有这个 'L' 符号并且在我的控制器中没有真正的 'map' 对象。我真的不知道如何使用任何传单插件,因为该指令似乎非常有限。任何人都知道在 angular 指令中使用 leaflet stuff life 'addTo(map)' 的好方法?

加载 Leaflet javascript 资产后,您始终可以访问 L 对象,因为它附加到全局范围。只需在您的控制器中尝试 console.log(L);,您就会看到。如果你想访问由指令创建的 L.Map 实例,你可以将 leafletData 注入你的控制器。它包含一个 getMap 方法,该方法 returns 一个承诺,当解决 returns 地图实例时:

angular.module('myApp').controller('myController', [
             'leafletData',
    function (leafletData) {
        leafletData.getMap().then(function(map) {
            new L.Marker([0,0]).addTo(map);
        });
    }
]);