2014-07-22 18 views
5

काम नहीं करता है मेरी AngularJS अनुप्रयोग के लिए पत्रक को जोड़ने के बाद:AngularJS पत्रक getMap()

<leaflet id="map" defaults="defaults" center="center" bounds="bounds" controls="controls" event-broadcast="events"></leaflet> 

और यह स्थापित करने: इस कोड को यह मूल्यांकन किया है नहीं प्राप्त करता है के बाद

// Initialise the feature group to store editable layers 
var drawnItems = new L.FeatureGroup(); 

// Initialise the draw control 
var drawControl = new L.Control.Draw({ 
    position: 'topright', 
    edit: { 
     featureGroup: drawnItems 
    } 
}); 

// Configure Leaflet 
angular.extend($scope, { 
    defaults: { 
     zoomControlPosition: 'topright', 
     minZoom: 3, 
     tileLayerOptions: { 
      detectRetina: true, 
      reuseTiles: true, 
      attribution: '<a href="http://osm.org">OpenStreetMaps</a>' 
     } 
    }, 
    center: {}, 
    controls: { 
     custom: [drawControl] 
    }, 
    events: { 
     map: { 
      enable: ['click'] 
     } 
    } 
}); 

(कोई हालांकि दिखाया गया त्रुटि):

leafletData.getMap().then(
    function (map) { 
     alert('I have accessed the map.'); 
    } 
); 

यह मुझे तुरंत एक चेतावनी दिखाना चाहिए, हालांकि कुछ भी नहीं होता है।

यदि मैं इस पिछले कोड में देरी करता हूं, उदाहरण के लिए, इसे बटन पर किसी फ़ंक्शन में चलाकर क्लिक करें, यह काम करता है!

क्या कोई जानता है कि कोई समस्या क्या हो सकती है?

देखकर उदाहरण के लिए, यह काम करना चाहिए: https://github.com/tombatossals/angular-leaflet-directive/blob/master/examples/control-draw-example.html

आंशिक रूप से हल

leaflet एचटीएमएल टैग से आईडी निकालने समस्या हल हो। एक बग होना चाहिए।

+0

मुझे एक ही समस्या थी। क्या आपने इसकी रिपोर्ट की? – schmijos

+0

हाँ मैंने कुछ महीने पहले किया था - अभी तक कोई कार्रवाई नहीं की गई है। – Julius

+0

आपको टैग की आईडी को getMap() फ़ंक्शन में इस तरह से पास करना होगा: leafletData.getMap ('theMap')। तब (... – Dojo

उत्तर

16

आपको id<leaflet> टैग में getMap() फ़ंक्शन में निर्दिष्ट करना होगा।

आपके उदाहरण में, आईडी map है। आप इसे इस तरह से पारित करेंगे:

leafletData.getMap("map").then(
    function (map) { 
     alert('I have accessed the map.'); 
    } 
); 
संबंधित मुद्दे