4

我已将登录元素定义如下:

<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”类型的子类型。

如果从聚合物元素声明中删除“extends=form”,则代码有效:

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

并创建如下:

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

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

4

2 回答 2

6

您应该将其实例化为

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

似乎不起作用的是

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

这应该导致插入元素的 HTML

<form is="my-login"></form>
于 2013-12-09T15:47:54.670 回答
3
factory MyLogin() => document.createElement("form", "my-login");

然后你可以打电话:

MyLogin login = new MyLogin();

这对我有用。

于 2014-10-16T08:18:58.810 回答