html - 循环遍历数组并在时间间隔内仅显示一个内容索引(Angular 2+)
问题描述
我正在尝试找到在 Angular 2+ 中循环遍历数组的最佳方法,并且仅每 10 秒显示一次数组的数据
例如
phrase = ["Hello", "Yo", "Whats up?"];
<div *ngFor = "let p of phrase">
{{p}}
<div>
一段时间过去,显示“Hello”,然后删除“Hello”,然后显示“Yo”,依此类推。
解决方案
显然有很多方法可以做到这一点,但您可以使用例如interval()
from rxjs
:
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable, interval } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
selector: 'hello',
template: `
{{ phrase[index$ | async] }}
`,
})
export class HelloComponent {
phrase = ["Hello", "Yo", "Whats up?"];
index$: Observable<number>;
constructor() {
this.index$ = interval(1000).pipe(
map((item, index) => index % this.phrase.length),
)
}
}
这index$
将每秒发出一个索引,告诉您使用哪个短语打印phrase[index$ | async]
。
见演示:https ://stackblitz.com/edit/angular-qtmdxp?file=src%2Fapp%2Fhello.component.ts
推荐阅读
- javascript - 反应原生:有办法做一个手风琴表吗?
- google-bigquery - 使用 BigQuery Geo Viz 可视化多边形及其质心
- flutter - Dart Experts - 按不同值对列表进行分组,并计算总和
- c - OpenSSL:如何从 RSA 结构中导出 RSA 密钥?
- aws-elasticsearch - 从备份还原到另一个实例
- angular - 如何获取角度材料多选字段的值和文本
- kotlin - Kotlin 无法转换为整数
- azure-cognitive-services - ComputerVisionErrorException:操作返回了无效的状态代码“未授权”
- laravel - 忽略 PHPUnit 9 中的弃用通知?
- asp.net-core - 如何在 Entity Framework Core 中建立一对多关系