2
地理位置から速度を得て、それを画面に表示します。いくつかのケースでは、数値は前の数値とは大きく異なり、ギャップ内の数値を示す遷移を作成したいと考えています。
例:1つの数字からもう1つの数字に増減する方法は、イオン2の数字を表示する方法ですか?
speed 1 -> 80
speed 2 -> 90
display -> 80 81 82 83 84 85 86 87 88 89 90
私はいくつかのソリューションを試みたが、「遷移は」動作しませんでした。
位置tracker.ts
startTracking(){
this.watchSubscription = this.watch.subscribe((resp) => {
this.zone.run(() => {
var speedToSet = resp.coords.speed;
this.setSpeed(speedToSet);
});
}, error => {
console.log("Error: " + JSON.stringify(error));
});
}
setSpeed(speedarg){
if (speedarg == this.speed){
return;
}
if (speedarg > this.speed){
let val = this.speed;
for (var i = val; i <= speedarg; i++){
setTimeout(() => {
this.speed = i;
}, 30);
}
} else {
let val = this.speed;
for (var i = val; i >= speedarg; i--){
setTimeout(() => {
this.speed = i;
}, 30);
}
}
}
home.html
<ion-grid>
<ion-row>
<ion-col>
Speed: {{locationTracker.speed}}
</ion-col>
</ion-row>
</ion-grid>
Iは、上記の解決策を試みたが、最後の番号が更新されます。
例:
speed 1 -> 80
speed 2 -> 90
display -> 90
パーフェクト!素晴らしい解決策と素晴らしい説明。 1つの質問:空またはnullではなく0で開始するにはどうすればよいですか?したがって、ユーザーは最初の速度が到着する前に0を見ることができます。 ありがとう! – augustocosta
'startWith'演算子があります。 'switchMap':'})。startWith(0) 'の後ろにそれをすべて下に追加してください。 –