角度/イオン2で更新リストを保管してください。は、私は、私は2つの方法で私のコンポーネントのリストを更新するアンギュラ2.</p> <p>を使用してイオン2で開発されたアプリケーションを持っている2
- 自動更新 - 更新がない場合、または最後の更新が30分以上前に だった場合は更新します。
- 手動 - 次回の更新まで待つ必要がない場合は、いつでも手動で更新できます。
ユーザーがページを離れると自動リフレッシュがキャンセルされ、彼が戻ってきたときに再び初期化されます。ユーザーがページに入ったときにすぐに更新するのではなく、最後の更新から30分が経過したときにのみ更新します。
これを達成するにはどうすればよいでしょうか?アップデートが矛盾するのではないかと思っています。もしそうならば、すべてをキャンセルして最後の呼び出しでしか進めないのですか?
私はAngular 2を初めて使っています。Observablesとちょっと混乱しています。ここで私が持っているものです。
import { Component } from '@angular/core';
import { Observable } from "rxjs/Observable";
import 'rxjs/add/operator/share';
import 'rxjs/add/operator/mergeMap';
import "rxjs/add/observable/interval";
import { NavController } from 'ionic-angular';
import { EventData } from '../../providers/event-data';
@Component({
selector: 'page-event-list',
templateUrl: 'event-list.html'
})
export class EventListPage {
public events = [];
private subscription;
constructor(public navCtrl: NavController, public eventData: EventData) {}
ionViewDidEnter() {
this.load();
}
ionViewDidLeave() {
this.cancel();
}
load() {
let observable = Observable
.interval(10000)
.flatMap(() => {
return this.eventData.load();
})
.share();
this.subscription = observable
.subscribe(events => this.events = events, error => console.log(error));
return observable;
}
reload(refresher) {
this.load()
.subscribe(null, null,() => refresher.complete());
}
cancel() {
if (this.subscription.closed) {
return;
}
this.subscription.unsubscribe();
}
}
ありがとう、私は多くを学んだ!コメントは役に立ちました!リストは他のページから更新することができ、ユーザーがリスティングページに戻ると、次の更新の前に既に更新されていなければなりません。 AngularJS 1では、すべてのサービスを確実にサービスに渡します。この場合、AngularJS 2では同じロジックに従うべきですか?リストとメソッドをプロバイダに渡す必要がありますか? –
また、angle2内のデータと状態を処理するための_clean_方法を探している場合は、ngrxを使用する必要があります。https://github.com/ngrx/store - ngrxを使用すると、すぐに使用できるMachanicsがデータ、アップデート、データフローなど。コンポーネントから独立していてもコンポーネントからは制御可能 - 完全な完全な例として、example-appを見てください:https://github.com/ngrx/example-app/ - 本当にたくさんのことを学ぶことができますコードを読んで理解するだけです – olsn