0
私は作成したジオロケーションプロバイダを使用していますが、ここでは非同期です。ユーザーの所在地を知るには3〜5秒程度が必要です。私はコールバックの無名関数を使用しています。私はconsole.logのすべてが期待どおりに動作し、値を読み取っています。(ionic2 angular4)匿名コールバック関数から 'this'に返された値を返します。
しかし、この変数を使用して値をクラス変数に設定しようとすると、この変数は定義されていません。ここに私のコードです。 locationTrackerは私が作成したプロバイダです。
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { SettingsPage } from '../settings/settings'
import { ListPage } from '../list/list'
import { Geolocation } from '@ionic-native/geolocation';
import {Observable} from 'rxjs/Rx';
import { LocationTrackerProvider } from '../../providers/location-tracker/location-tracker';
export class HelloIonicPage {
public latitude:number = null;
public longitude:number = null;
constructor(public navCtrl: NavController, public locationTracker: LocationTrackerProvider) {
locationTracker.updateCoordinate(function (coords) {
console.log(coords); // here it works perfectly
this.latitude = coords.latitude; // TypeError: this is underfinded
return coords;
});
}
問題は、これがrecoginzedされないように、私は、変数を緯度に値を渡すことができる方法は?
私はこれをコンストラクタ内に保持するつもりはありませんが、デモンストレーションの理由から、私はその時点でそれを持っています。 -
@yurzui - あなたが言ったように、それは完全に働きました。ありがとうございました!!! –