【发布时间】:2019-05-17 14:47:34
【问题描述】:
我有一个可观察的变量,它从存储中获取它的值。 我有一个订阅方法来收听更新。在其中,我尝试将常规变量分配为可观察变量的值之一。 我通过控制台记录它以查看它是否已更新并且它已更新但模板中的值未更新。
我已经尝试在模板中聆听 observable 并且效果很好。但是,我需要操纵返回的答案,所以我不能这样做。
我也试过
this.cdr.detectChanges();
这很有效,但对于如此简单的事情来说,它感觉很老套和矫枉过正。 也以防万一有人想知道我的组件没有
ChangeDetectionStrategy=OnPush
.
这就是变量的初始化方式。
this.filters$ = this.store.let(getListsContactsFilters());
这就是订阅的样子。
this.filters$.subscribe((filters) => {
this.selectedAreas = filters.selectedAreas;
});
然后我在模板中执行此操作
<div *ngFor="let area of selectedAreas">
<h1>{{area.title}}</h1>
</div>
我也尝试在模板中打印出 selectedAreas:
{{selectedAreas | json}}
即使在订阅功能被触发后,它仍然是一个空数组。
真的超级简单,所以天知道为什么它不起作用。
我希望 this.selectedAreas 在模板中具有 filters.selectedAreas 的值。顺便说一句,对象数组。
【问题讨论】:
-
更新了我的答案
-
@thnksfrthmmrs 确保没有另一个函数同时触发阻止或模糊预期结果。如果有,您可能需要添加 {emitEvent: false}