所以,我正在尝试访问隐藏在纸张输入字段内的输入字段。这样我就可以改变输入类型等等。检查元素后,您可以看到它有2个阴影根as explained in this blog。但是,该博客中解释的方法不再有效。我使用dart版本1.5.3,聚合物0.12.0-dev。
我尝试像这样查询纸张输入:
querySelector('#paper-input-id').shadowRoot.querySelector('#input');
但是,返回null。这是因为shadowRoot属性仅返回第一个阴影根。输入字段隐藏在第二个阴影根中。我想我要问的是,是否有一种通用的方法来选择元素的第n个阴影根?
答案 0 :(得分:2)
这似乎就是我在<core-input>
var input = dom.document.querySelector("#changeAndInputEvent") as CoreInput;
var domInput = (input.shadowRoot.olderShadowRoot.querySelector('#input') as dom.InputElement);
什么也应该起作用
var domInput = (dom.document.querySelector("#changeAndInputEvent /deep/ #input");
或
var domInput = (dom.document.querySelector("* /deep/ #changeAndInputEvent /deep/ #input");
当纸张输入本身位于阴影中时
答案 1 :(得分:1)
而不是使用shadowRoot
和olderShadowRoot
,如果由于某种原因({1}}决定继承新的,然后继承自paper-input
的话,可能会发生变化,请尝试使用更通用的core-input
地图(注意's'):
shadowRoots