因此,我正在尝试访问隐藏在纸张输入字段深处的输入字段。这样我就可以更改输入类型等。检查该元素后,您可以看到它有 2 个影子根 as explained in this blog 。然而,该博客中解释的方法不再有效。我使用的是 dart 版本 1.5.3,polymer 0.12.0-dev。
我尝试像这样查询纸张输入:
querySelector('#paper-input-id').shadowRoot.querySelector('#input');
但是,这会返回 null。这是因为 ShadowRoot 属性仅返回第一个影子根。输入字段隐藏在第二个影子根中。我想我要问的是是否有一种通用的方法来选择元素的第 n 个阴影根?
最佳答案
这似乎正是我在 <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");
当纸张输入本身位于shadow-dom内部时
关于html - 如何在 dart 中查询 Paper Input 元素的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892816/