Dart 为条件元素获取自定义元素对象的最佳方法是什么

Dart 为条件元素获取自定义元素对象的最佳方法是什么,dart,dart-webui,polymer,Dart,Dart Webui,Polymer,使用聚合镖,我经常需要抓住一个子元素后面的聚合元素对象 ButtonElement nextButton; void inserted() { //Get hold of the elements nextButton = shadowRoot.query('#nextButton'); //Do some thing useful with nextButton } <template if="{{emailValid}}"> <button id="n

使用聚合镖,我经常需要抓住一个子元素后面的聚合元素对象

ButtonElement nextButton;

void inserted()
{
  //Get hold of the elements
  nextButton = shadowRoot.query('#nextButton');
  //Do some thing useful with nextButton
}

<template if="{{emailValid}}">
   <button id="nextButton" on-click="nextStep">
</template>
按钮元素下一个按钮;
插入空格()
{
//抓住元素
nextButton=shadowRoot.query(“#nextButton”);
//用nextButton做一些有用的事情
}
这个很好用。但是,如果在本例中,nextButton位于条件模板之下,则在调用inserted()时,它不是DOM的一部分,因此找不到它。还有别的办法吗


否则,我将不得不确定何时显示该条件模板并抓取它。

这可能取决于“使用nextButton做一些有用的事情”的确切含义,但实现这一点的方法通常是将任何可重用的行为与其操作的DOM封装在一起。也就是说,不要在封闭元素的
inserted
方法中包含要操作
#nextButton
的代码,而是创建一个新的自定义元素,让我们将其称为
super button
,并将相关代码放入
super button
ready
inserted
方法中

然后,如果您发现某些行为确实应该在超级按钮之外,请遵循与上面使用的单击处理程序相同的模式。让
超级按钮
在适当的时间触发一个事件,然后声明性地将处理程序映射到该事件:

<template if="{{emailValid}}">
   <super-button on-click="nextStep" on-my-special-event="mySpecialEventHandler"></super-button>
</template>

这可能取决于“使用nextButton做一些有用的事情”的确切含义,但实现这一点的方法通常是将任何可重用行为与其操作的DOM封装在一起。也就是说,不要在封闭元素的
inserted
方法中包含要操作
#nextButton
的代码,而是创建一个新的自定义元素,让我们将其称为
super button
,并将相关代码放入
super button
ready
inserted
方法中

然后,如果您发现某些行为确实应该在超级按钮之外,请遵循与上面使用的单击处理程序相同的模式。让
超级按钮
在适当的时间触发一个事件,然后声明性地将处理程序映射到该事件:

<template if="{{emailValid}}">
   <super-button on-click="nextStep" on-my-special-event="mySpecialEventHandler"></super-button>
</template>


谢谢您的回复。在本例中,可以做一些有用的事情,添加我添加的值更改处理程序,以解决当前Polymer.dart构建中的MDV错误,该错误会阻止绑定属性更新。所以这个特殊的场景有点人为。我真的希望有其他方法访问Xtag对象。虽然我猜它可能在第一次显示它的元素之前不存在。谢谢你的回复。在本例中,可以做一些有用的事情,添加我添加的值更改处理程序,以解决当前Polymer.dart构建中的MDV错误,该错误会阻止绑定属性更新。所以这个特殊的场景有点人为。我真的希望有其他方法访问Xtag对象。虽然我猜它可能在第一次显示它的元素之前不存在。