我正在使用Angle dart开发Web应用程序。
我有一个组件A,它的模板中有'n'个组件B。
组件A通过输入绑定为组件B提供数据。
组件A处理发布到API以及从API获取信息。
只要组件A中的数据发生更改,它就应该在组件B中进行更新。
但我看不到这种情况。
我在组件B中使用了ngOnChanges和ngAfterChanges,但是当组件A中的数据发生更改时,它没有被调用。
B组件很多(例如800个),因此每当A组件中的数据发生更改时,我就无法手动调用每个组件中的更改检测。
只要A中的数据发生更改,我应该怎么做以自动更新组件B中的数据?
component_a.html:
<ng-container *ngFor="let nameMap of maps">
<component_b [nameMap]="nameMap">
</component_b>
</ng-container>
component_b.dart:
class ComponentB {
@Input()
Map<int, String> nameMap;
}
假设ComponentA中nameMap项的值已更改。如何在ComponentB中反映出来?
TIA。
答案 0 :(得分:0)
因此,angular的工作方式是使用身份来识别绑定何时更改。因此,在这种情况下,如果地图实例未更改,则不会知道自己进行更新。
父母没有办法使下面的树无效,孩子有办法使FWIW上面的树无效,这就是markForCheck的作用。
有两种方法可以使它起作用: