Dynamically create polymer element

[亡魂溺海] 提交于 2019-12-29 00:47:11

问题


I have defined login element as follows:

<polymer-element name="my-login" extends="form">
  <template> ...</template>

and dart class as follows:

@CustomTag('my-login')
  class MyLogin extends PolymerElement { .... }

In the main application component, I am trying to create my-login as follows:

 MyLogin p =  new Element.tag("my-login", "FormElement");

This generates exception:

Exception: type 'HtmlElement' is not a subtype of type 'MyLogin' of 'p'.

The code works if "extends=form" is removed from polymer-element declaration :

 <polymer-element name="my-login">

and created as follows:

MyLogin p =  new Element.tag("my-login");

How to dynamically create custom element that extends other HTML element?


回答1:


You should instantiate it as

Element y = new Element.tag('form', 'my-login');

What seems not to work is

MyLogin y = new Element.tag('form', 'my-login');

this should result in the HTML for the inserted element

<form is="my-login"></form>



回答2:


factory MyLogin() => document.createElement("form", "my-login");

Then you can just call:

MyLogin login = new MyLogin();

This works for me.



来源:https://stackoverflow.com/questions/20474071/dynamically-create-polymer-element

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!