我已经定义了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元素的自定义元素?
答案 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();
这适合我。