动态创建聚合物元素

Tus*_*shu 4 dart dart-polymer

我已经定义了login元素如下:

<polymer-element name="my-login" extends="form">
  <template> ...</template>
Run Code Online (Sandbox Code Playgroud)

和飞镖课如下:

@CustomTag('my-login')
  class MyLogin extends PolymerElement { .... }
Run Code Online (Sandbox Code Playgroud)

在主应用程序组件中,我尝试按如下方式创建my-login:

 MyLogin p =  new Element.tag("my-login", "FormElement");
Run Code Online (Sandbox Code Playgroud)

这会产生异常:

例外:类型'HtmlElement'不是'p'类型'MyLogin'的子类型.

如果从polymer-element声明中删除"extends = form",则代码有效:

 <polymer-element name="my-login">
Run Code Online (Sandbox Code Playgroud)

并创建如下:

MyLogin p =  new Element.tag("my-login");
Run Code Online (Sandbox Code Playgroud)

如何动态创建扩展其他HTML元素的自定义元素?

Gün*_*uer 6

你应该将它实例化为

Element y = new Element.tag('form', 'my-login');
Run Code Online (Sandbox Code Playgroud)

似乎没有用的是

MyLogin y = new Element.tag('form', 'my-login');
Run Code Online (Sandbox Code Playgroud)

这应该导致插入元素的HTML

<form is="my-login"></form>
Run Code Online (Sandbox Code Playgroud)