【发布时间】:2021-10-14 01:38:24
【问题描述】:
我不明白*ngfor 在这个例子中如何每次都运行并且只输出最后一个附加值,谁能给我解释一下?
如果每次数组Numbers 在setinterval 函数中更新,并且每次都会触发 ngfor,不应该每 1000 毫秒输出整个数组吗?
就像:
数字是 - 0
数字是 - 0
数字是 - 1
数字是 - 0
数字是 - 1
数字是 - 2
...
结果是这样的:
数字是 - 0
数字是 - 1
数字是 - 2
数字是 - 3
...
这里是应用根组件 TS
import {Component} from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
interval = 0;
lastNumber = 0;
Numbers:number[] = [];
TimeTick()
{
this.interval = setInterval(() =>
{
this.Numbers.push(this.lastNumber);
this.lastNumber++;
}, 1000)
}
}
这是应用程序根组件 HTML
<div class="container">
<div class="row">
<div class="col-xs-12">
<button class="btn btn-primary" (click)="TimeTick()">Start</button>
<app-loop-x *ngFor="let num of Numbers" [number]="num"></app-loop-x>
</div>
</div>
</div>
这里是 app-loop-x TS
import {Component, Input} from '@angular/core';
@Component({
selector: 'app-loop-x',
templateUrl: './loop-x.component.html',
styleUrls: ['./loop-x.component.css']
})
export class LoopXComponent {
@Input() number: number = 0;
}
这是 app-loop-x HTML
<p>Number is - {{ number }}</p>
【问题讨论】:
标签: angular ngfor angular2-directives