2016-01-03 19 views
6

के साथ सफारी पर कोणीय एनजी-क्लिक मुद्दे यह एक अजीब मुद्दा है, जो कुछ उत्पन्न करना और अन्वेषण करना मुश्किल है।आईओएस 8.3

कोणीय का उपयोग करके एक वेब ऐप बनाने के दौरान, मेरे मालिक ने पाया कि ng-click निर्देश का उपयोग कर रहे ऐप पर मौजूद सभी बटन काम नहीं कर रहे हैं।

अब, यह समस्या केवल iphone 6 with IOS 8.3 and using the safari browser पर होती है।

मैं कह सकता हूं कि आईफोन 5 (सभी संस्करण), आईफोन 6 (आईओएस 9), विंडोज़ और अन्य सभी ब्राउज़रों (मोबाइल और डेस्कटॉप) के लिए सफारी, ng-click पर एक आकर्षण की तरह काम करता है।

ऐप Angular 1.4.3 का उपयोग करके बनाया जा रहा है।

यह, बटन के लिए कोड है, जैसा कि आप देख सकते हैं इसके बारे में कुछ खास नहीं:

<button class="btn calculate-button" ng-click="onCalculate()">Calculate</button> 

और नियंत्रक में:

$scope.onCalculate = function() { 
    //Do something... And then: 
    $state.go('someplace'); 
}; 



मैं कई परिवर्तन का पता लगाया जो करने की कोशिश की यहां बताया गया है, जिसमें ng-touch, ng-bind शामिल है, मेरे स्वयं के क्लिक निर्देश का निर्माण निम्नानुसार है:

.directive('basicClick', function($parse, $rootScope) { 
    return { 
     compile: function(elem, attr) { 
      var fn = $parse(attr.basicClick); 
      return function(scope, elem) { 
       elem.on('click', function(e) { 
        fn(scope, {$event: e}); 
        scope.$apply(); 
       }); 
      }; 
     } 
    }; 
}); 

समस्या के लिए कोई उचित समाधान नहीं मिला।

धन्यवाद।

उत्तर

8

मैं अंत में यह तय हो गई।

समस्या //Do something... And then: समारोह में भाग थी। रास्ते में किसी बिंदु पर, यह फ़ंक्शन ब्राउज़र स्थानीय संग्रहण में कुछ डेटा सहेजता है।

मेरा मालिक सफारी पर निजी ब्राउज़िंग का उपयोग कर रहा था, और स्पष्ट रूप से सफारी पर निजी ब्राउज़िंग का उपयोग करते समय, ब्राउजर स्थानीय स्टोरेज पर सहेजता और डेटा नहीं बचाता और यह अपवाद फेंकता है और कोड को मार देता है।

अच्छा, किसी भी तरह से धन्यवाद।

19

आईओएस 8.4.1 अपडेट एक ज्ञात मुद्दा है जो एनजी-लिंक को रोकता है और काम पर एनजी-क्लिक करता है।

"टचस्टार्ट क्लिक" का उपयोग करके संभवतः इस समस्या को हल कर सकते हैं।

app.directive("ngMobileClick", [function() { 
    return function (scope, elem, attrs) { 
     elem.bind("touchstart click", function (e) { 
      e.preventDefault(); 
      e.stopPropagation(); 

      scope.$apply(attrs["ngMobileClick"]); 
     }); 
    } 
}]) 

एचटीएमएल कॉल: ng-mobile-click="onCalculate()"

+0

धन्यवाद। जैसे ही मैं कर सकता हूं मैं इसे आज़माउंगा और आपको यह बताएगा कि यह काम करता है या नहीं। – Gal

+0

समाधान मिला। यह वह नहीं था। फिर भी धन्यवाद! – Gal

+0

यह मेरे लिए धन्यवाद, धन्यवाद। @Iamisti क्या आपके पास ज्ञात समस्या विवरण या ऐसा कुछ है? –

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