我想在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分钟选择一个随机引用?
答案 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