Ionic 2 - * ng对值之间的随机混洗

时间:2017-05-16 15:04:20

标签: javascript arrays typescript ionic2

我想在div element中显示引号,因此我想每5分钟更新一次报价。但是当我在html中创建*ngFor时,它将显示数组的所有元素。有没有办法每隔5分钟在数组中显示一个随机选择的引号?

这是我创建数组的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分钟选择一个随机引用?

1 个答案:

答案 0 :(得分:2)

这是*ngFor所做的,它遍历并在屏幕上打印出在其中创建的html作为数组长度的次数。

如果您希望一次只显示一个引号并每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中你会有

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

正如Daniel Cooke评论的那样,如果引用来自服务器,你可以每5分钟调用一次,只需要在setInterval中实现代码。

希望这会有所帮助:D