我有一个循环,创建了一个事件列表。
<ng-container *ngFor="let event of venueEvents">
<div class="event-card">
<div class="event-image">
<img src={{getRandomImage()}}>
</div>
<div class="event-details">
<p class="event-title">{{event.name}}</p>
<p class="event-time">{{event.nextOccursOn | date}}</p>
</div>
</div>
</ng-container>
正如您所看到的,这张图片是通过函数生成的动态图片。
getRandomImage() {
let baseImageLink = "http://lorempixel.com/640/480/",
linkKey = {
'1': 'nature',
'2': 'sports',
'3': 'cat',
'4': 'nightlife',
'5': 'food'
},
randomNumber = Math.floor((Math.random() * 5) + 1);
return baseImageLink + linkKey[randomNumber];
}
这个结果是符合预期的,但控制台显示了一个错误。
EXCEPTION: Error in ./VenueDetailComponent class VenueDetailComponent - inline template:64:21 caused by: Expression has changed after it was checked. Previous value: 'http://lorempixel.com/640/480/sports'. Current value: 'http://lorempixel.com/640/480/cat'.
这是一些临时的函数,在真正的应用程序中永远不会存在,但我想了解问题并知道它应该如何解决。
*ngFor="let event of venueEvents; let i=index"><img [src]="images[i]">
或类似的方式访问它。 - undefinedvar n = this.venueEvents.length; for(var i = 0; i < n; i++) { this.images.push(...); }
- undefined