2014-09-04 4 views
7

मुझे लीफलेट मानचित्र पर डिफ़ॉल्ट ज़ूम इन/आउट बटन के साथ कुछ समस्याएं हैं। जब मैं सीधे पृष्ठ लोड करता हूं तो सबकुछ ठीक काम करता है लेकिन जब मैं एक राज्य को राज्य में बदलता हूं जहां पुस्तिका पुस्तिका निर्देशक काम करता है तो बस काम नहीं करता है। यहाँ आप उदाहरण जानाआयनिक/कोणीय पुस्तिका पुस्तिका - ज़ूम इन/आउट बटन काम नहीं करते

http://codepen.io/anon/pen/JkyEg?editors=101

कोड:

एचटीएमएल

<html ng-app="app"> 
    <head> 
     <meta charset="utf-8"/> 
     <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"/> 
     <link href="http://code.ionicframework.com/1.0.0-beta.11/css/ionic.min.css" rel="stylesheet"/> 
     <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" /> 
     <title>Leaflet example</title> 
    </head> 
    <body> 
     <ion-nav-view></ion-nav-view> 

     <script type="text/ng-template" id="locations.html"> 
      <ion-view title="Locations"> 
      <ion-content> 
       <ion-list can-swipe="true"> 
        <ion-item ng-click="locationOnClick(location)" class="item item-icon-left" ng-repeat="location in locations"> 
         <i class="icon ion-location"></i> 
         <h2>{{location.name}}</h2> 
        </ion-item> 
       </ion-list> 
      </ion-content> 
      </ion-view> 
     </script> 
     <script type="text/ng-template" id="location.html"> 
      <ion-view title="{{location.name}}"> 
      <ion-nav-bar class="bar-positive" animation="nav-title-slide-ios7"> 
       <a ui-sref="locations" class="button icon-left ion-chevron-left button-clear ">Locations</a> 
      </ion-nav-bar> 
      <ion-content> 
       <leaflet height="480px"></leaflet> 
      </ion-content> 
     </ion-view> 
     </script> 
     <script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script> 
     <script src="http://code.ionicframework.com/1.0.0-beta.11/js/ionic.bundle.min.js"></script> 
     <script src="http://tombatossals.github.io/angular-leaflet-directive/dist/angular-leaflet-directive.min.js"></script> 
    </body>                 
</html>  

जे एस

angular.module('app', [ 
    'ionic', 
    'leaflet-directive' 
]) 
    .config(function($stateProvider, $urlRouterProvider) { 
     $stateProvider 
      .state('locations', { 
       url: "/locations", 
       templateUrl:"locations.html", 
       controller: 'LocationsCtrl' 
      }) 
      .state('location', { 
       url: "/location/:locationId", 
       templateUrl: "location.html", 
       controller: 'LocationCtrl' 
      }); 


     // if none of the above states are matched, use this as the fallback 
     $urlRouterProvider.otherwise('/locations'); 

    }) 
.factory('locationService', function(){ 
    var _locations = [{ 
     id: 1, 
     name: 'Sample location', 
     lat: 50, 
     lng: 50 
     }]; 
    return { 
    getAll: function(){ 
     return _locations; 
    }, 
    getById: function(id){ 
     return _locations.filter(function(loc){ return loc.id === id; })[0]; 
    } 
    } 
}) 
.controller('LocationsCtrl', function($scope, $location, locationService){ 
    $scope.locations = locationService.getAll(); 

    $scope.locationOnClick = function(location){ 
    $location.path('/location/'+location.id); 
    }; 
}) 
.controller('LocationCtrl', function($scope, $stateParams, locationService){ 
    $scope.location = locationService.getById($stateParams.locationId); 
}) 

उत्तर

17

समाधान सरल था। आयनिक सभी क्लिक घटनाओं को "खाने" था जो ढांचे द्वारा नहीं बनाया गया था। लीफलेट मानचित्र के कंटेनर के लिए विशेषता data-tap-disabled="true"

<ion-content data-tap-disabled="true"> 
    <leaflet height="480px"></leaflet> 
</ion-content> 
+0

धन्यवाद @tsubik यह मेरे लिए काम करता है। –

0

आयनिक की तरह लगता है एक बग है टच इवेंट हैंडलर पर। हालांकि, मेरा एक सहयोगी एक कार्यवाही के साथ आया जब तक कि यह तय नहीं हो जाता।

मूल रूप से, ionic.bundle.js (https://rawgit.com/cachiconato/ionic/angular-leaflet-control/release/js/ionic.bundle.js) के अपने संस्करण का उपयोग करें और मानचित्र से लिंक होने वाले प्रत्येक संभावित टैग में 'डेटा-डू-नॉट-सेट-निर्देशांक = "सत्य" जोड़ें।

http://codepen.io/anon/pen/sHpoy?editors=101

<h2 data-do-not-set-coordinates="true">{{location.name}}</h2> 
+0

हाँ समाधान काम करता है लेकिन मुझे सरल मिला। – tsubik

+0

हाँ, वही बात कहने के लिए यहां आ रहा था। आपको लगता है कि मुझे लगता है कि मैंने सोर्स कोड में खोदना था, मैंने यह कहकर टिप्पणियां देखीं ... =/ –

संबंधित मुद्दे