Очевидно, что есть много способов сделать это, но вы можете использовать, например, interval()
из 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