我有一个下拉列表,其中有一个模型作为[输入]。
关于我的父母:
public ngOnInit(): void {
this.initializeDropdown();
}
private initializeDropdown(): void {
this.viewModel.dropdownItems = {
defaultItem: {
display:
value: undefined
},
items: []
};
const promise = this.someService.get("SOMEURL");
promise.then(res => {
if (Array.isArray(res)) {
res.map((item) => {
this.viewModel.dropdownItems.items.push(
{
display: item.display,
value: item.value
});
}
);
}
});
}
问题是不会更新子组件。因此,下拉列表不会更新。我可以看到viewModel已初始化。
我用一种方法[this.viewModel.dropdownItems]绑定了它
我也在其他地方使用此下拉组件,因此我知道它可以工作。 (关于api调用的Dunno虽然不知道我是否还要在其他地方这样做)
答案 0 :(得分:1)
如果您使用的是changeDetection: ChangeDetectionStrategy.OnPush
,请保留ChangeDetectorRef
并按以下方式致电markForCheck
。
constructor(private changeDetectorRef: ChangeDetectorRef) {}
const promise = this.someService.get("SOMEURL");
promise.then(res => {
if (Array.isArray(res)) {
res.map((item) => {
this.viewModel.dropdownItems.items.push(
{
display: item.display,
value: item.value
});
});
this.changeDetectorRef.markForCheck();
}
});