Ionic 2 AppでAngular 2(Typescript)を使用しています。私は1つのクラスNewFavoriteSitePage
プライベートプロパティsiteForm
と私はクラスのメソッドでこのプロパティを使用することができますが、私は1つのGoogleマップのメソッドの中にいるときこの変数は定義されていません。変数の範囲は何か、または両側からアクセスする変数を定義するにはどうすればよいですか?タイプスクリプト内のスコープ変数
declare var google;
......
export class NewFavoriteSitePage {
.....
private siteForm: FormGroup;
loadMap(){
//I can access to siteForm here!
.....
google.maps.event.addListener(marker, 'dragend', function(marker, siteForm){
let newlatLng = marker.latLng;
console.log(this.siteForm); //Here this.siteForm is undefined
});
}
私がテストしています'public siteForm:FormGroup'は動作しません。 – CampDev
私は 'decl var siteForm:any'を' decl go var google'の下でテストしていますが、それもうまくいきません。 – CampDev
これは、typescriptやあなたが使うタイプとは関係ありません。クラス自体とは何の関係もない独自の新しい 'this'を使って関数を作成しています。矢印関数を使用して、バインドして、 'var = this'または新しい関数の' this'があなたが望むものであることを確認するための無数の他の方法の1つを閉じます。 – ASDFGerte