4

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' のサブタイプではありません。

「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 に答える