【发布时间】:2013-09-12 08:10:22
【问题描述】:
我有一个父组件作为其他组件的容器。我希望容器能够查询其组件内的元素。比如我的外部组件是:
<polymer-element name="task-dart">
<template>
<div class="task-list">
<template repeat="{{tasks}}">
<task-row task="{{}}"></task-row>
</template>
</div>
</template>
<script type="application/dart" src="taskdart.dart"></script>
</polymer-element>
我的内部组件是:
<polymer-element name="task-row" attributes="task">
<template>
<div class="task">
<!-- html components of the task -->
</div>
</template>
<script type="application/dart" src="task_row.dart"></script>
</polymer-element>
但 taskdart.dart 中的以下两项均不会产生任何结果:
void created() {
super.created();
print(queryAll(".task").toString()); // []
Timer.run( () {
print("queryAll: " + queryAll(".task").toString()); // []
});
}
这是因为 css 是在内部组件中限定的,还是因为在初始化期间此时没有什么可查询的?无论哪种方式,我将如何解决它?
【问题讨论】:
-
您正在跨越影子根边界。因此,您正在破坏封装。并不是说不可能,但您可能会想到如何做到这一点,而无需了解自定义元素的内部结构。
标签: dart dart-webui polymer