动态创建聚合物元素

时间:2013-12-09 15:17:31

标签: dart dart-polymer

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

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

和飞镖课如下:

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

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

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

这会产生异常:

异常:类型'HtmlElement'不是'p'类型'MyLogin'的子类型。

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

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

并创建如下:

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

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

2 个答案:

答案 0 :(得分:6)

您应该将其实例化为

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

似乎没有用的是

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

这应该导致插入元素的HTML

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

答案 1 :(得分:3)

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

然后你可以打电话:

MyLogin login = new MyLogin();

这适合我。