在Angular 7应用程序中,我的ngFor指令不起作用,并且也不会产生任何错误。该应用程序的工作方式就是这样
项目为here。
答案 0 :(得分:4)
您必须通过删除该行或使用Default
来将组件的changeDetection更改为ChangeDetectionStrategy.Default
。
OnPush策略禁用自动更改检测。
如果您有必要在组件中使用OnPush
策略,则必须手动触发更改检测
为此,您必须将ChangeDetectorRef
注入组件:
constructor(private cdr: ChangeDetectorRef)
并在加载数据后触发它:
getData.subscribe(images => {
// do something
this.cdr.detectChanges();
});
答案 1 :(得分:1)
这是因为您正在使用“ OnPush”,并且在接收图像时未触发更改检测。
在将图像分配给ChangeDetectorRef
之后,您可以注入markForCheck()
并在其上调用this.images
,但更好的是您不应该自己处理订阅并“拆包”您的可观察对象:
答案 2 :(得分:-1)
在* ngFor之前,您需要具有一个div,并且div在从服务中获取数据后需要具有* ngIf条件,然后仅将* ngIf设置为true,现在应该进行尝试。