Saturday 15 March 2014

polymer - Dart: Can't access dynamically set Element Ids -



polymer - Dart: Can't access dynamically set Element Ids -

so wanted set id dynamically in dart, can't access it. btn null. chrome show button got id, no access id in dart..

// 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 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); ..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(); } }

this expected behavior (as designed). dynamically created elements not included in map accessible $. need utilize shadowroot.queryselector('#somebutton'); instead.

update

i guess problem missing element in elements html. why add together these elements imperatively instead of markup?. add together elements children not content of the shadow dom. if intentionally need utilize this.queryselector() instead of shadowroot.queryselector()

dart polymer dart-polymer

No comments:

Post a Comment