Угловая листовка JS с использованием плагинов листовки и многое другое

Я использую буклет и angularJS и, следовательно, угловую директиву для буклета. Теперь я хочу использовать пользовательские маркеры. Например, эти маркеры для лодки: https://github.com/thomasbrueggemann/leaflet.boatmarker. Или, например, для "ползунков листовок" ( https://github.com/dwilhelm89/LeafletSlider) мне нужно использовать addControl или L.geoJson().

Моя проблема сейчас заключается в том, что, поскольку я использую угловую директиву, у меня нет этого обозначения 'L' и нет реального объекта 'map' в моем контроллере. Я серьезно не знаю, как использовать какой-либо плагин листовки, так как директива кажется настолько ограниченной. Кто-нибудь знает хороший способ использовать листовки "addTo(map)" в угловой директиве?

1 ответ

Решение

После того, как вы загрузили javascript-ресурс Leaflet, у вас всегда будет доступ к L объект, так как он прикреплен к глобальной области видимости. Просто попробуй console.log(L); в вашем контроллере, и вы увидите. Если вы хотите получить доступ к L.Map экземпляр, созданный директивой, которую вы можете внедрить leafletData в ваш контроллер. Он содержит getMap метод, который возвращает обещание, которое при разрешении возвращает экземпляр карты:

angular.module('myApp').controller('myController', [
             'leafletData',
    function (leafletData) {
        leafletData.getMap().then(function(map) {
            new L.Marker([0,0]).addTo(map);
        });
    }
]);
Другие вопросы по тегам