我想仅在总票数乘以10时才更新视图。我每10毫秒递增一个数组rows
的随机元素,它们总计为总投票数。只有在满足某个条件时,角度2才能在模板中绑定和显示模型值吗?
模板:
<div>
<ul class="list">
<li class="item" *ngFor="let row of rows">{{ row }}</li>
</ul>
</div>
<h3 class="title">Total number of votes: {{ votes }}</h3>
答案 0 :(得分:1)
为了简单,干净和“Angular”,你应该使用基本的Pipe。
你的烟斗看起来像这样:
@Pipe({name: 'ten'})
export class MultiplesOfTenPipe implements PipeTransform {
transform(value: number): number {
return Math.floor(value / 10) * 10;
}
}
这只会更新模板/视图中votes
的值,因为它是一个可被10整除的数字。
查看此链接,了解其实际效果:https://stackblitz.com/edit/angular-xzuqnn
答案 1 :(得分:1)
我不明白这个问题。您可以有两个变量(rows和rowsDisplays)
@Component({
selector: 'app-home',
template: `
<div>
<ul class="list">
<li class="item" *ngFor="let row of rowsDisplay">{{ row }}</li>
</ul>
</div>
`
})
export class HomeComponent implements OnInit {
rowsDisplay:any[]=[];
rows:any[]=[];
constructor() { }
ngOnInit() {
setInterval(()=>{
this.rows.push(new Date());
if (this.rows.length%10==0) //or another condition
this.rowsDisplay=[].concat(this.rows); //you can't do this.rowsDisplay=this.rows,
//because then this.rowsDisplay will be this.rows
},1000);
}
}