我在访问 Polymer 元素的 shadowDom 时遇到问题。这是元素的(截断)代码:
<polymer-element name="word-element" attributes="chars">
<template>
<h2>Drag and drop the letters to form anagrams</h2>
<div id='container'>
<div class="char" draggable="true">a</div>
<div class="char" draggable="true">b</div>
<div class="char" draggable="true">c</div>
<br>
<br>
<template repeat="{{chars}}">
<div class="char" draggable="true">{{}}</div>
</template>
</div>
</template>
</polymer-element>
下面是 Dart 代码的样子:
@CustomTag("word-element")
class WordElement extends PolymerElement with ObservableMixin {
@observable List chars;
inserted() {
var charDivs = this.shadowRoot.queryAll('.char');
print(charDivs.length);
}
charDivs.length
总是返回 3,计算<div>
我硬编码到<template>
. 在代码中创建的任何 div<template repeat="{{chars}}">
都不会通过使用shadowRoot
. 任何想法为什么会这样?
此外,当我将样式应用于具有 classchar
的元素时,样式将应用于所有 <div>
s,包括在repeat
. 但 usingshadowRoot
只返回硬编码的 div。