Смотрите изменения в ионном 3 - PullRequest
0 голосов
/ 04 июля 2018

У меня есть следующий код, мне не удалось найти способ обновить изменения stepsCount, мне нужно, чтобы каждый раз, когда startPedometerUpdates () отправлял изменения, чтобы иметь возможность мгновенно их отображать. в переменной stepsCount.

В сущности, я хочу создать часы для обнаружения изменений this.stepsCount или this.pedometer.startPedometerUpdates().

.

Есть идеи, как это сделать? Большое спасибо

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

//Pedometer
import { Pedometer, IPedometerData } from '@ionic-native/pedometer';


@Component({
  selector: 'page-actv-home',
  templateUrl: 'actv-home.html',
})
export class ActvHomePage {

  stepsCount: any = 0;

  constructor(
    public navCtrl: NavController,
    public pedometer: Pedometer,
    public plt: Platform
  ) {
    this.pedometer.startPedometerUpdates()
      .subscribe((data: IPedometerData) => {
        this.stepsCount = data.numberOfSteps;
      });
  }

}

HTML

<ion-content>
    <p>{{ stepsCount }}</p>
</ion-content>

Журнал консоли для data

enter image description here

1 Ответ

0 голосов
/ 04 июля 2018

У меня есть решение. с ChangeDetectorRef, спасибо. @ AJT_82

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

//Pedometer
import { Pedometer, IPedometerData } from '@ionic-native/pedometer';


@Component({
  selector: 'page-actv-home',
  templateUrl: 'actv-home.html',
})
export class ActvHomePage {

  stepsCount: any = 0;

  constructor(
    public navCtrl: NavController,
    public pedometer: Pedometer,
    public refdect:ChangeDetectorRef,
    public plt: Platform
  ) {

    // STEPS COUNT DEMO
    if (this.plt.is('cordova')) {
        this.watchSteps();
    }
  }


  watchSteps(){
    this.pedometer.startPedometerUpdates()
        .subscribe((data: IPedometerData) => {
          this.stepsCount = data.numberOfSteps;
          if(this.stepsCount == 10){
            alert('Yes! Your have completed 100 steps');
          }
          this.refdect.detectChanges();
    });
  }

}
...