gpt4 book ai didi

dart - Dart:无法动态访问设置的元素ID

转载 作者:行者123 更新时间:2023-12-03 02:53:50 24 4
gpt4 key购买 nike

所以我想在 Dart 中动态设置一个ID,但是我无法访问它。 btn将始终为null。 Chrome浏览器确实显示Button获得了ID,但是我无法访问Dart中的ID。

    // extended Td html
<polymer-element
name="crud-tr" extends="tr" attributes="metaData entry">
<script type="application/dart" src="crud-tr.dart"></script>
</polymer-element>

-
// extended Td Dart
@CustomTag('crud-tr')
class CrudTrElement extends TableRowElement with Polymer, Observable {
void attached() {
super.attached();
TableCellElement editTd = new TableCellElement();
ButtonElement edit_cancel = new ButtonElement();
edit_cancel
..text = "Edit"
..id = 'edit_cancel'
..onClick.listen((event) => toggleEditMode());
editTd.append(edit_cancel);

TableCellElement deleteTd = new TableCellElement();
ButtonElement delete_save = new ButtonElement();
delete_save
..id = 'delete_save'
..text = "Delete"
..onClick.listen((event) => deleteEntry());
deleteTd.append(delete_save);

this
..append(editTd)
..append(deleteTd);
}

void toggleEditMode() {
ButtonElement editBtn = this.shadowRoot.querySelector('#edit_cancel');
ButtonElement deleteBtn = this.shadowRoot.querySelector('#delete_save');
/* -> Both null / Exception */
}

CrudTrElement.created() : super.created() {
polymerCreated();
}
}

最佳答案

这是预期的行为(按设计)。动态创建的元素不包含在可通过$访问的 map 中。您需要改用shadowRoot.querySelector('#someButton');
更新资料
我猜问题出在元素HTML中缺少元素。为什么要强制性地添加这些元素而不是标记?您将元素添加为子元素,而不是阴影DOM的内容。如果有意这样做,则需要使用this.querySelector()而不是shadowRoot.querySelector()

关于dart - Dart:无法动态访问设置的元素ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26487918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com