2017-05-20 136 views
0

我的ionic2應用程序從cordova插件獲取數據,但輸入的值沒有更新automatic.thank你先。 我的演示代碼:如何更新值auto,ionic2更新值無頁面刷新

import { Component } from '@angular/core'; 
import { NavController, Events } from 'ionic-angular'; 

declare var AMapPlugin; 

@Component({ 
    selector: 'page-hello-ionic', 
    templateUrl: 'hello-ionic.html' 
}) 

export class HelloIonicPage { 

    gps: string = ''; 
    _distance: number = 0; 

    constructor(public navCtrl: NavController, private event: Events) { 
    } 

    getDistance() { 
    return new Promise<number>((resolve, reject) => { 
     AMapPlugin.getDistance(data => { 
     resolve(data); 
     }); 
    }); 
    } 

    location() { 
    AMapPlugin.startLocation(10, success => { 
     let lo = { lat: success.latitude, lng: success.longitude }; 
     this.gps = JSON.stringify(lo); 
    }, error => { 
    }); 
    } 

    start() { 
    this.getDistance().then(data => { 
     this._distance = data; 
    }); 
    } 
} 

位置將觸發全球定位系統每次10秒,但HTML值不能實時修改。

<ion-item> 
    <ion-label>distance</ion-label> 
    <ion-input type="text" [(ngModel)]="_distance" readonly></ion-input> 
    </ion-item> 
    <ion-item> 
    <ion-label>current</ion-label> 
    <ion-input type="text" [(ngModel)]="gps | async" readonly></ion-input> 
    </ion-item> 
+0

gps是一個字符串..不是一個承諾或可觀察..不需要'異步'。也是'location()'調用? –

+0

'getDistance()'是一個Promise(只讀一次)。爲了讀取新的值,你最好提供一個Observable。 –

回答

0

您必須手動檢測到更改。使用ngZone或另一個角度更改檢測器,檢查此answer

+0

謝謝,它的工作原理 –