如何在dart中查询Paper Input元素的Input字段

时间:2014-07-22 16:27:04

标签: html5 dart dart-polymer shadow-dom

所以,我正在尝试访问隐藏在纸张输入字段内的输入字段。这样我就可以改变输入类型等等。检查元素后,您可以看到它有2个阴影根as explained in this blog。但是,该博客中解释的方法不再有效。我使用dart版本1.5.3,聚合物0.12.0-dev。

我尝试像这样查询纸张输入:

querySelector('#paper-input-id').shadowRoot.querySelector('#input');

但是,返回null。这是因为shadowRoot属性仅返回第一个阴影根。输入字段隐藏在第二个阴影根中。我想我要问的是,是否有一种通用的方法来选择元素的第n个阴影根?

2 个答案:

答案 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)

而不是使用shadowRootolderShadowRoot,如果由于某种原因({1}}决定继承新的,然后继承自paper-input的话,可能会发生变化,请尝试使用更通用的core-input地图(注意's'):

shadowRoots