1

我刚刚开始使用 Angular 6,所以我提前为这可能是一个非常简单的问题道歉。我也刚刚开始研究使用ngxs状态管理。

@Select我在我的组件上从我的状态获得了一个Observable 属性。

@Select(HomeState.isLoading) isLoading$: Observable<boolean>;

我的问题是,我如何isLoading在组件模板中实际使用?在模板中使用可观察状态属性的一般模式是什么?我应该订阅 observable 并将值映射到组件上的另一个属性,还是有办法在模板中使用 Observable?

当然,如果它只是一个直线上升boolean,我可以像*ngIf="isLoading"在模板中一样使用它。

4

1 回答 1

2

使用 observables 的想法是允许通过使用模板中的“异步”管道来管理订阅,否则,如果您自己在某个时候这样做,您将需要在组件被销毁时通过取消订阅 observable 来管理所有订阅. 在示例中,您isLoading可以在模板上使用变量来显示或隐藏组件的一部分,例如:

<div *ngIf="isLoading$ | async">show loader</div>

在我看来,一个好的模式总是让视图处理订阅!如果您需要转换 observable 中的变量,您始终可以通过管道传输和转换变量。

于 2018-09-07T13:25:56.213 回答