如何获取对 Angular2 模板中特定组件的引用?
How to get a reference to a particular component in an Angular2 template?
我知道 Angular2 @ViewQuery
可以获取 QueryList
与给定类型匹配的组件。但是有没有办法在这个QueryList
中获取对特定组件的引用?
现在,我能想到的唯一方法是给组件一个额外的 "id" 字段,然后遍历 QueryList
并检查标识符是否是我想要的, 例如:
getComponentById(QueryList<HasIdField> queryList, String id) =>
queryList.singleWhere((component) => component.id == id);
但这似乎是一个足够普遍的问题,似乎应该有一种方法可以在不添加此 "id" 样板的情况下执行此操作。我知道可以使用 #
在模板中本地引用组件,但是有没有一种方法可以在 class 中类似地引用组件?
目前此功能不存在,请参阅 here 以详细了解实现自定义过滤器的功能为何由于潜在的性能原因而被搁置。
鉴于当前可用的功能,您的做法似乎是正确的,但随着框架现在处于 alpha 阶段,这可能会改变。
我知道 Angular2 @ViewQuery
可以获取 QueryList
与给定类型匹配的组件。但是有没有办法在这个QueryList
中获取对特定组件的引用?
现在,我能想到的唯一方法是给组件一个额外的 "id" 字段,然后遍历 QueryList
并检查标识符是否是我想要的, 例如:
getComponentById(QueryList<HasIdField> queryList, String id) =>
queryList.singleWhere((component) => component.id == id);
但这似乎是一个足够普遍的问题,似乎应该有一种方法可以在不添加此 "id" 样板的情况下执行此操作。我知道可以使用 #
在模板中本地引用组件,但是有没有一种方法可以在 class 中类似地引用组件?
目前此功能不存在,请参阅 here 以详细了解实现自定义过滤器的功能为何由于潜在的性能原因而被搁置。
鉴于当前可用的功能,您的做法似乎是正确的,但随着框架现在处于 alpha 阶段,这可能会改变。