2017-05-16 11 views
0

私はdiv elementで引用符を表示したいので、その引用符を5分ごとに更新したいと思います。しかし、htmlに*ngForを作成すると、配列のすべての要素が表示されます。 5分ごとにランダムに選択した見積もりを配列に表示する方法はありますか?ここでイオン2 - * ng値間のランダムシャッフル

は、私は配列を作成どこtsはファイルです:

public quotesArray: any[] = []; 

    constructor(public navCtrl: NavController) { 
    this.quotesArray.push('testQuote'); 
    this.quotesArray.push('testQuote2'); 
    this.quotesArray.push('testQuote3'); 
    this.quotesArray.push('testQuote4'); 
    } 

、ここではhtmlです:

<div *ngFor="let q of quotesArray; let i = index">{{ q }}</div> 

どのように私は、ランダムな引用に5分ごとに選ぶことができますか?

+0

は、あなただけの新しい引用のためのHTTPリクエストごとに5分をしない理由は、サーバーから来ていますか? –

+0

今はサーバーから来ていません。 – Sreinieren

答えて

2

*ngForこれは、繰り返し実行され、アレイ内で作成されたhtmlを配列の長さとして画面に配列して出力します。

一度に1つの見積もりを表示し、5分ごとに更新する場合は、setInterval()メソッドを使用して見積もりを操作できます。

public quotesArray: any[] = []; 
public randomQuote: string; 

constructor(public navCtrl: NavController) { 
    this.quotesArray.push('testQuote'); 
    this.quotesArray.push('testQuote2'); 
    this.quotesArray.push('testQuote3'); 
    this.quotesArray.push('testQuote4'); 

    // immediately show one random quote; 
    this.quotesArray[Math.floor(Math.random() * this.quotesArray.length)]; 

    setInterval(() => { 
    this.randomQuote = this.quotesArray[Math.floor(Math.random() * this.quotesArray.length)]; // this'll get the quote depending on your array length 
    }, 300000); // needs to be in milliseconds 
} 

ダニエル・クックがコメントしたようにHTMLに引用符がサーバーから来ればあなただけの内のコードを実装する必要があり、5分ごとにそれを呼び出すことができ、

<div>{{randomQuote}}</div> 

を持っていますsetInterval。

・ホープ、このことができます:あなたの引用符を想定すると、D

+0

しかし、これは中間値を表示しません。これは5分後の値のみを示しています。値が表示され、5分後に変更するよりも、 – Sreinieren

+0

が答えを編集しました。ただすぐに変数に引用符を付けてください –