将不同的多个Angular组件组合在一起的设计模式

时间:2019-06-24 13:22:23

标签: angular typescript design-patterns

我有一个Angular6应用。该应用程序有多个页面。每个页面由多个组件组成。这些组件基本上有两种类型:过滤器组件和网格组件。筛选器组件提供有关如何在网格中筛选数据的输入。这些过滤器输入可以是异步的。

<page>
 <filter-1></filter-1>
 <filter-2></filter-2>
 <filter-3></filter-3>
 <grid filters="filtersForData"></grid>
</page>

page.component.ts

 filtersForData = [];
 callbackForFilter1(filter) { filters.push(filter)} // async
 callbackForFilter2(filter) { filters.push(filter)} // synchronous
 callbackForFilter3(filter) { filters.push(filter)} // async

现在一切正常。但是,我想以一种方式设计以上内容,除非拥有所有过滤器,否则不要加载网格。原因是某些调用本质上是异步的,网格引发了ExpressionChangedAfterEvaluation错误。 一个想法的过程也是使所有过滤器异步或不返回可观察对象,并且一旦完成所有可观察对象,则仅加载网格。 但是,这带来了编写和保持可观察性的另一个挑战。 同样,在不同时间进入的多个过滤器也会导致我要避免的多重onChanges触发器。 如何实现以上目标?

0 个答案:

没有答案