Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Dart聚合物中访问ShadowDom中的htmlElement_Dart_Dart Polymer - Fatal编程技术网

在Dart聚合物中访问ShadowDom中的htmlElement

在Dart聚合物中访问ShadowDom中的htmlElement,dart,dart-polymer,Dart,Dart Polymer,我对Dart和Polymer很陌生,有一个问题我找不到答案 我正在编写一个简单的单页应用程序,并希望访问聚合元素阴影域中的buttonElement。(SDK 1.0和Polymer 0.9.3,Dart稳定版) 正如我从文档和api中了解到的,我应该使用: @覆盖 无效输入视图(){ super.enteredView(); submitButton=$['submitButton']; submitButton.disabled=真; } 下面是我的html: ... ... ... .

我对Dart和Polymer很陌生,有一个问题我找不到答案

我正在编写一个简单的单页应用程序,并希望访问聚合元素阴影域中的buttonElement。(SDK 1.0和Polymer 0.9.3,Dart稳定版)

正如我从文档和api中了解到的,我应该使用:

@覆盖
无效输入视图(){
super.enteredView();
submitButton=$['submitButton'];
submitButton.disabled=真;
}
下面是我的html:


...
...
...
...
在这个模板中,当我在enteredView方法的末尾打印出$['submitButton']时,我得到null

但是:当我更改html模板并且不将按钮放在nestend模板标记中时:


...
...
...
...
我有我的按钮,可以使用它。否则,enteredView(button.disabled)中的最后一个调用将抛出错误

有人能帮我吗?我做错了什么

提前谢谢

编辑:

只需启用/禁用按钮,就可以使用Dart中针对禁用属性的特殊表达式来完成

<button disabled?="{{buttonDisabled}}">

这将导致删除和添加禁用的属性。
在if或repeat模板中查找元素仍然不起作用。

使用
$['id']
方法访问
模板if=“…”>
中的元素还不起作用。
Dart小组最近对此进行了讨论。我认为应该有一个功能的要求,但还没有找到他们

我不确定shadowRoot.querySelector('#id')是否有效

如果没有,那么AFAIK唯一的选项是
MutationObserver
,就像这里一样,因为在将元素插入DOM之前,您无法访问它

编辑:


感谢您的回复!我将尝试编辑:
submitButton=querySelector('submitButton')也不起作用。尝试时,
的计算结果是否为
true
?如果只想启用/禁用按钮,可以将
disabled
属性绑定到元素类
的值,并在代码
@observable bool btnSubmitDisabled=true中。然后你甚至不需要获取按钮本身的引用。是的,我只想禁用/启用按钮,并首先尝试你的建议,因为我认为这是最干净的一个。但是
仍然处于禁用状态,因为禁用按钮的html规范需要具有“disabled”属性,任何位于“disabled”中的内容都将导致禁用按钮。是的,表达式的计算结果为true,否则我将看不到按钮。今晚我将尝试MutationObserver,谢谢所有链接!Polymer提供了对此类布尔属性的支持,但您必须在“=”之前添加一个“?”。好的,谢谢。我认为我在web上找到的WebUI中的解决方案一定有一个等价物。我会把答案贴在最上面的帖子里。