से छुटकारा पाना चाहते हैं मेरे पास एल.मैप ('मैपलेमेंट') के साथ एक पुस्तिका बनाई जा रही है। मुद्दा यह है कि यदि मैं एक बटन पर क्लिक करता हूं जो पर्चे के मानचित्र को "छुपाता है", तो दिखाने के लिए बटन को फिर से क्लिक करें, पुस्तिका पुस्तिका दिखाई नहीं दे रही है। हालांकि, जब मैप बनने से पहले लिंक फ़ंक्शन के भीतर सेटटाइमआउट डालता हूं और इसे 2 सेकंड तक सेट करता है, तो नक्शा हर बार दिखाता है (हालांकि मुझे 2 सेकंड का इंतजार करना पड़ता है)। क्या मेरे कस्टम "लीफलेट-मैप" निर्देश में दिखाने और छिपाने के लिए $ टाइमआउट का उपयोग करने का बेहतर विकल्प है?
उत्तर
क्या सीएसएस आपकी मदद करेगा?
एक दृश्य div में एक नक्शा बनाएं
visibility: visible
एक ही स्थिति में
visibility: hidden
स्थिति दोनों अपने div एक छिपा div में दूसरा नक्शा बनाएं
position: absolute
जब आप टॉगल करना चाहते हैं बस अपने divs की दृश्यता
उदाहरण: http://plnkr.co/edit/voTjyMLKTxUC183nf8ML?p=preview (क्षमा करें यह कोणीय नहीं है)
मैं अपने कोड के किसी भी देखने और एनजी शो के माध्यम से नक्शे के प्रदर्शन टॉगल कर रहा हूँ बिना एक पत्रक-नक्शा निर्देश के एक अनुभवहीन उदाहरण बनाया। यह बिना किसी $ टाइमआउट के काम करता है। यह पता लगाना मुश्किल है कि आपकी समस्याएं किसी भी कोड को देखे बिना या मानचित्र के प्रदर्शन को टॉगल करने का प्रयास करने के तरीके से कहां से उभर रही हैं।
angular.module('demo', [])
.directive('leafletMap', function() {
return {
restrict: 'E',
scope: {
mapOptions: '&'
},
template: '<div><button ng-click="toggleShow()">Toggle Map</button><div class="demo-map" ng-show="isShown"></div></div>',
link: function(scope, elem, attrs) {
// Find element to bind to map
var mapElem = elem.children().find('div')[0],
// get map options from isolate scope
mapOptions = scope.mapOptions();
// State of hide/show
scope.isShown = true;
// Create Map.
var map = L.map(mapElem, mapOptions);
// Just taken from leaflet example
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpandmbXliNDBjZWd2M2x6bDk3c2ZtOTkifQ._QA7i5Mpkd_m30IGElHziw', {
maxZoom: 18,
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'mapbox.streets'
}).addTo(map);
// method to toggle the shown/hidden state of map
scope.toggleShow = function() {
scope.isShown = !scope.isShown;
};
// cleanup on element destroy
elem.on('$destroy', function() {
map.remove();
});
}
};
})
.controller('DemoController', function() {
this.mapOptions = {
center: [51.505, -0.09],
zoom: 13
};
});
.demo-map {
height: 500px;
}
<script src="//cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<link rel="stylesheet" href="//cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css" />
<div ng-app="demo" ng-controller="DemoController as ctrl">
<leaflet-map map-options="ctrl.mapOptions"></leaflet-map>
</div>
अनुमान लगाना मुश्किल है जब मेरे पास 2 पुस्तिकाएं हैं और मैं एक बनाम दूसरे के प्रदर्शन को स्विच करना चाहता हूं। प्रत्येक एक अलग आईडी के साथ। – Rolando
तत्व की आईडी कोई फर्क नहीं पड़ता कि आप अलग-अलग दायरे के साथ निर्देश का उपयोग कर रहे हैं। उपरोक्त कोड सीधे संदर्भ संदर्भ के माध्यम से मानचित्र के साथ काम करता है। मैं उपरोक्त कोड को दो चरणीय मानचित्रों को संशोधित कर सकता हूं जो बाहरी चर से बाहर चलाए जाते हैं, लेकिन इस बिंदु पर मैं बस अनुमान लगा रहा हूं क्योंकि मैंने अभी भी यह नहीं देखा है कि आप क्या करने की कोशिश कर रहे हैं। – Patrick
- 1. छिपाने() छिपाने बनाम ("धीमी")
- 2. कोणीय - एनजी-छिपाने और एनजी-शो
- 3. हास्केल - अंकगणित ऑपरेटरों को छिपाने (छिपाने)
- 4. विधि छिपाने और फ़ील्ड छिपाने के लिए विरासत सहायता
- 5. /छिपाने div
- 6. एनजी-दोहराना: क्लिक करने और अन्य लोगों को छिपाने पर एक आइटम दिखा रहा है
- 7. छिपाने curl_easy_perform
- 8. ऑटो छिपाने UINavigationBar और UIToolbar
- 9. संपत्ति छिपाने और प्रतिबिंब (सी #)
- 10. सूचना छिपाने और डेटा अमूर्तता में अंतर?
- 11. विजेट दिखा रहा है और छुपाएं
- 12. विश्वसनीय सॉफ्टकीबोर्ड को छिपाने
- 13. छिपाने वाला निर्माता
- 14. छिपाने वाले पायगमेम डिस्प्ले
- 15. छिपाने वाले एक्सिस लेबल्स
- 16. मंद/छिपाने प्रवेश लाइनों
- 17. नामस्थान कारण नाम छिपाने का उपयोग कर रहा है?
- 18. फ्लाइंग सॉसर छिपाने हैडर और प्रथम पृष्ठ
- 19. divs को दिखाने/छिपाने में समस्या
- 20. इंटरफ़ेस विरासत और संपत्ति छिपाने की समस्या
- 21. सी # छिपाने और प्रकट करें टिप्पणियां
- 22. छिपाने jQuery ui मेनू जब कहीं और
- 23. अन्य प्रोग्रामों से फ़ाइल छिपाने
- 24. चिपचिपा फूटर छिपाने की सामग्री
- 25. Yii2 GridView छिपाने स्तंभ सशर्त
- 26. सूचना छिपाने बनाम छिपी निर्भरता
- 27. फ्लेक्स 4.6 छिपाने/खारिज softkeyboard
- 28. छिपाने UINavigationItem के बार बटन
- 29. Flexslider छिपाने गोलियों स्लाइड शो
- 30. छिपाने से पहले मॉडल घटना
आप कुछ कोड दे सकते हैं? – Rob
$ टाइमआउट (func, 0) का उपयोग करने के बारे में कैसे; यह केवल आपके मानचित्र शो कार्य को निष्पादन कतार के अंत में जोड़ देगा। – mkkhedawat
इसलिए मैंने पूरी सामग्री को "स्टार्ट" फ़ंक्शन में निर्देश के लिंक में लपेट लिया जहां मेरे पास है: $ टाइमआउट (फ़ंक्शन() { $ टाइमआउट (प्रारंभ, 0); }); इंतजार करने के लिए थोड़ा गड़बड़ लगता है। मुझे उम्मीद है कि कुछ "viewdidload" या कुछ घटना जो मैं उपयोग कर सकता हूं। – Rolando