2016-01-31 3 views
1

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

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

ответ

2

После того, как вы загрузили ресурс 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); 
     }); 
    } 
]); 
Смежные вопросы