को async सेवा से डेटा पास मैंAngular.js गुंजाइश
app.factory('geolocation', function ($rootScope, cordovaReady) {
return {
getCurrentPosition: cordovaReady(function (onSuccess, onError, options) {
navigator.geolocation.getCurrentPosition(function() {
var that = this,
args = arguments;
if (onSuccess) {
$rootScope.$apply(function() {
onSuccess.apply(that, args);
});
}
}, function() {
var that = this,
args = arguments;
if (onError) {
$rootScope.$apply(function() {
onError.apply(that, args);
});
}
}, options);
}),
getCurrentCity: function (onSuccess, onError) {
this.getCurrentPosition(function (position) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode(options,function (results, status) {
var city = address_component.long_name;
});
});
}
}
});
की तरह एक सेवा है और मैं
function MainCtrl($scope, geolocation) {
geolocation.getCurrentCity(function(city){
$scope.city = city;
});
};
की तरह एक नियंत्रक कुछ से क्या करना चाहते हैं getCurrentPosition ठीक काम करता है और शहर है भी निर्धारित है, हालांकि मुझे नहीं पता कि नियंत्रक में शहर का उपयोग कैसे किया जाए।
क्या होता है? जब प्राप्त करें CurrentCity कहा जाता है, तो यह gps coords निर्धारित करने के लिए getCurrentPosition कहते हैं। इस कॉरपोरेशन को ऑनस्यूशन विधि पर तर्क के रूप में पारित किया गया है? तो यह वही है जो मैं getCurrentCity विधि में करना चाहता हूं, लेकिन मुझे नहीं पता कि कैसे। Async geocoder ने शहर को पुनर्प्राप्त किया, मैं नए डेटा को ऑनसेप विधि पर लागू करना चाहता हूं।
कोई विचार?
मेरी समस्या ठीक हुई, मेरे पास एक फ़िल्टर था जो लूप का कारण बन रहा था। –
एक वचन के लिए $ स्कोप संपत्ति सेट करने के उपरोक्त नियंत्रक कार्यान्वयन में पहला दृष्टिकोण कोणीय 1.3 में और भी काम नहीं करता है।वचन अब और नहीं छोड़े गए हैं, इसलिए आपको दूसरे दृष्टिकोण (उस हैंडलर में $ स्कोप संपत्ति सेट करना) का उपयोग करना होगा – jbandi
@jbandi: आपको लगता है कि कुछ बदल गया है। मुझे नहीं मिला कि सटीक परिवर्तन क्या है। क्या आप इसे मेरे लिए स्पष्टीकरण देते हैं? मैं तदनुसार जवाब अपडेट करूंगा। –