2016-09-04 28 views
0

タブテンプレートに基づいてIonic 2アプリケーションにGoogleマップを挿入しようとしています。プロパティ 'map'がタイプ 'MapPage'に存在しません

コンストラクタ関数this.mapメソッドで初期化しようとする前に、すべて正常に動作していました。

import {Component} from '@angular/core'; 
import {Geolocation} from 'ionic-native'; 
import {NavController} from 'ionic-angular'; 

@Component({ 
    templateUrl: 'build/pages/map/map.html' 
}) 
export class MapPage { 
    constructor(private navCtrl: NavController) { 

    this.map = null; 

    this.loadMap(); 

    } 

    loadMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
     center: {lat: -34.397, lng: 150.644}, 
     scrollwheel: false, 
     zoom: 8 
    }); 
    } 

} 

今コンソールにエラーがhttp://localhost:8100/build/js/app.bundle.js

をGETスローし、エラーが私のターミナルでもあります:

エラーTS2339:プロパティ 'マップは、' タイプ「MapPageに存在しません。 '問題エラーTS2339と同様の例

見つかりたくさん:プロパティ「マップは、」タイプ「観察可能な」に存在しません。

私はnpmを更新しました - 助けにはなりませんでした。 削除this.map = nullを私のコードから方法今私のアプリの作業、同じエラーをしないとイオン性私のアプリ(のみデフォルトのindex.htmlページ)

をロードしないコマンドを果たしますこの問題を解決するには、どのようにプロパティ 'マップ'を 'MapPage'クラスに追加しますか?私のコードで何が間違っていますか?

答えて

2

あなたはそれを使用する前にmapプロパティを宣言する必要があります:

import {Component} from '@angular/core'; 
import {Geolocation} from 'ionic-native'; 
import {NavController} from 'ionic-angular'; 

@Component({ 
    templateUrl: 'build/pages/map/map.html' 
}) 
export class MapPage { 

    private map: any; // <- declare the variable 

    constructor(private navCtrl: NavController) { 

    this.map = null; // <- Now the variable exists so you can initialize it 

    this.loadMap(); 

    } 

    loadMap() { 
     // Instead of using a new variable, use this.map to use the existing map property 
     this.map = new google.maps.Map(document.getElementById('map'), { 
     center: {lat: -34.397, lng: 150.644}, 
     scrollwheel: false, 
     zoom: 8 
    }); 
    } 

} 
関連する問題