angular - ViewChildren 传递多个组件

标签 angular

为什么我不能在@ViewChildren 中传递多个组件?

目前有这个:

 @ViewChildren(ColorFilterComponent, TransmissionFilterComponent)
 public filters: QueryList<Filter>;

两个组件都实现了我的 Filter 接口(interface):

export declare abstract class Filter {
    abstract applyFilter(vehicles: Vehicle): boolean;
}

在某个时刻,我正在遍历 filters 并为 viewChildren 中的所有组件调用 applyFilter() 方法。

但是当我做一个简单的日志时:

console.log(this.filters.toArray());

它只包含一个过滤器。另一个不在这里。

在这种情况下,什么是好的最佳做法?

最佳答案

HTML:

 <colorfilter #filter></as-colorfilter>
 <transmissionfilter #filter></as-transmissionfilter>

组件:

@ViewChildren('filter')
public filters: QueryList<Filter>;

关于angular - ViewChildren 传递多个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39366869/

相关文章:

jquery - Angular 6 - 类型 '$' 上不存在属性 'Window'

javascript - 动态组件点击事件绑定(bind)Angular2

angular - 如何在 Angular 中不使用方法 stub 导入的模块?

android - 添加 nativescript-ui-dataform 插件后 NativeScript tns 构建失败

javascript - 在 Angular 中如何根据数字条件编写字符串

Angular - 在兄弟组件之间共享数据而不在实例之间共享

带有正文的 Angular HttpClient Get 方法

javascript - Angular6:表单=如何选择我将发送哪些参数

javascript - RxJs:有 observable 由 2 个独立的 observables 触发

angular - RouteLink 测试 Angular2