我已经定义了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元素的自定义元素?
你应该将它实例化为
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)