Inheritance dart:用查询替换ViewChildren
我知道我可以使用Inheritance dart:用查询替换ViewChildren,inheritance,angular,dart,components,viewchild,Inheritance,Angular,Dart,Components,Viewchild,我知道我可以使用@ViewChildren注释来访问DOM元素。但是,在这种特殊情况下,entries属性是在祖先组件(MenuComp)中定义的。因此,我尝试使用查询属性,如下所示: @Component( selector: 'my-component', template: ''' <ul> <subentry-comp #entries *ngFor="let item of items" [item]="item"></
@ViewChildren
注释来访问DOM元素。但是,在这种特殊情况下,entries
属性是在祖先组件(MenuComp
)中定义的。因此,我尝试使用查询
属性,如下所示:
@Component(
selector: 'my-component',
template: '''
<ul>
<subentry-comp #entries *ngFor="let item of items" [item]="item"></subentry-comp>
</ul>''',
inputs: const <String>['items'],
queries: const <String, dynamic>{'entries': const ViewChildren('entries')})
class SubmenuComp extends MenuComp {}
@组件(
选择器:“我的组件”,
模板:“”
'',
输入:常量['items'],
查询:const{'entries':const ViewChildren('entries')}
类subnumcomp扩展MenuComp{}
但是
条目
仍然为空。我是否以错误的方式使用了查询
属性?从angular 4.0.0-alpha+1开始,如果在父类的字段上使用@ViewChildren
,它将从父类继承注释。查询到组件的参数将消失。从未见过前面提到的quieries
ind@Component()
。我知道构造函数参数的@Query()
注释,但只要我使用Angular2(从alpha后期开始),它就被弃用了。您的查询似乎是从模板中查询元素。我不明白这与“祖先”有什么关系,因为AFAIK@ViewChild(ren)
和@ContentChild(ren)
都是在@Query
之上构建的,我不指望@Query
会有实质性的不同。