Polymer.dart如何查询子自定义元素的阴影根内的节点

Polymer.dart如何查询子自定义元素的阴影根内的节点,dart,dart-webui,polymer,Dart,Dart Webui,Polymer,我有一个父组件作为其他组件的容器。我希望容器能够查询其组件中的元素。例如,我的外部组件是: 我的内在成分是: 但是taskdart.dart中的以下两项都不会产生任何结果: void created(){ super.created(); 打印(queryAll(“.task”).toString();//[] Timer.run(){ 打印(“queryAll:+queryAll(.task”).toString();//[] }); } 这是因为css的作用域在内部组件中,还是因

我有一个父组件作为其他组件的容器。我希望容器能够查询其组件中的元素。例如,我的外部组件是:


我的内在成分是:


但是taskdart.dart中的以下两项都不会产生任何结果:

void created(){
super.created();
打印(queryAll(“.task”).toString();//[]
Timer.run(){
打印(“queryAll:+queryAll(.task”).toString();//[]
});
} 

这是因为css的作用域在内部组件中,还是因为在初始化过程中此时没有任何可查询的内容?无论哪种方式,我将如何修复它?

尝试使用
shadowRoot
。它仍然不能完全完成您想要的任务(不过,它会得到一个“.task”元素的列表)

聚合元素的顶层
的内容自动放入阴影根。这意味着
任务dart
无法查询子
中的div(它们包含在
的阴影根中),它只能查询自己的阴影根以获得任务行列表

Timer.run(){
打印(“queryAll:+this.shadowRoot.queryAll(“任务行”).toString();//[任务行,任务行,任务行,任务行]
});

如果您需要一些背景资料,请参阅。

从那里,我可以通过taskRows[index].shadowRoot.query('.task')获得所需的内部div您正在跨越阴影根边界。因此,您正在破坏封装。并不是说这是不可能的,但您可能会考虑如何做到这一点,而无需了解自定义元素的内部结构。