dart - 在 Dart 中扩展 AElement 的自定义聚合物元素

标签 dart dart-polymer

我想创建扩展“a”元素的自定义聚合物元素“ab-btn”。它应该用作:

<ab-btn href="http://www.gooogle.com">Google</ab-btn>

我的聚合物元素的 html 声明如下所示(脚本列在末尾,因为我想在一个文件中声明更多元素):

<polymer-element name="ab-btn" extends="a">
  <template>
    <content></content>
  </template>
</polymer-element>

<script type="application/dart" src="ab-elements.dart"></script>

元素的 dart 脚本如下:

import 'package:polymer/polymer.dart';
import 'dart:svg';

@CustomTag('ab-btn')
class AbBtn extends AElement {
  AbBtn.created() : super.created();

  var inputMethodContext;
}

当我尝试使用此元素时,我总是收到错误:

#13     _ZoneDelegate.run (dart:async/zone.dart:417)
#14     _CustomizedZone.run (dart:async/zone.dart:627)
#15     initPolymer (package:polymer/src/loader.dart:37:33)
#16     main (package:polymer/init.dart:23:22)


Exception: InvalidCharacterError: Internal Dartium Exception
  undefined (undefined:0:0)

扩展“a”元素的正确方法是什么?

最佳答案

您应该添加Polymer, Observable

@CustomTag('ab-btn')
class AbBtn extends AElement with Polymer, Observable {
  AbBtn.created() : super.created() {
    super.polymerCreated(); // <== also important for elements that extend DOM elements
  }
}

当您使用该元素时

<a is="ab-btn" href="http://www.gooogle.com">Google</a>

或者通过代码创建元素:

var elm = new Element.tag('a', 'ab-btn');

关于dart - 在 Dart 中扩展 AElement 的自定义聚合物元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382832/

相关文章:

dart - 如何在 polymer 自定义元素中渲染阴影 DOM

dart - 完全控制 PaperInput 验证

dart - 当我的 future 完成时,如何通知观察到的变量?

flutter - 为共享首选项用户名定义变量时出现问题

node.js - 如何阅读使用 Node 在Firestore中创建的最新文档?

annotations - 如何创建自定义的Polymer和PolymerDart注释?

dart - 获取在 Dart 中使用 <polymer-element> 创建的自定义元素的宽度?

flutter - 如何在flutter中将文档快照转换为Stream数据?

dart - Flutter showDialog、AlertDialog背景渐变。

dart - 更改抽屉图标颜色 flutter