Я использую ионный 2 и имею класс, подобный следующему. Я использую плагин locationServices и не хочу использовать ионный родной плагин геолокации.Значение элементов данных, не изменяющихся внутри машинописного текста
export class a{
location_acquiring:boolean;
location_available:boolean;
constructor(){
this.location_acquiring=true;
this.location_available=false;
}
fun(){
//Here i am using some cordova plugins and setting the location latitude and longitude localstorage variables.
let self=this;
cordova.plugins.diagnostic.isLocationEnabled(function(enabled){
let selfa=self;
cordova.plugins.diagnostic.isLocationAvailable(function(available){
let selfb=selfa;
cordova.plugins.locationServices.geolocation.watchPosition(function(position) {
//Now here although project is build without errors. but the values of the variables are not updated.
selfb.location_acquiring=false;
selfb.location_available=true;
},function(error){});
},function(error){});
},function(error){});
}
show_values(){
console.log(this.location_acquiring);
console.log(this.location_available);
}
}
Изменения, изменяемые внутри плагинаServices, не отражаются внутри переменных класса.
Вывод show_values()
функции
истинной
ложной
Невеста и может быть несвязанной, но для API карт google вам необходимо запустить некоторые обратные вызовы внутри zone.js явно. Что делать, если вы попытаетесь ввести «private __zone: NgZone» (NgZone живет в угловом/ядре) в конструкторе, а затем выполните: 'this._zone.run (() => { selfb.location_acquiring = false; selfb. location_available = true; }); ' –