Угловая листовка 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);
});
}
]);