无法在飞镖中创建聚合物核心元素

时间:2014-10-24 07:58:00

标签: dart polymer

我基本上想要创建一个<core-tooltip>标记,而不是HTML,但是在dart。

所以我试过了:

CoreTooltip tooltip = new CoreTooltip();
CoreTooltip tooltip = document.createElement("core-tooltip"):
CoreTooltip tooltip = new Element.tag("core-tooltip"):

始终具有相同的异常

  

未捕获错误:输入&#39; HtmlElement&#39;不是CoreTooltip&#39;

类型的子类型

为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

您不应该使用此方法

document.createElement("core-tooltip"):

其他两个都很好。

我假设元素创建失败,因为代码在自定义main中,并且在Polymer完成初始化之前执行。

有关详细信息,请参阅how to implement a main function in polymer apps

如果您在Polymer元素中执行代码(例如attached()之后的super.attached()方法)或on-click之类的事件处理程序,这将有效。

另一种可能性是,您的应用程序缺少导入<core-tooltip>的HTML导入。如果没有导入,这也无法正常工作。

我尝试使用此代码,它对我有用

app_element.dart

import 'dart:html' as dom;
import 'package:polymer/polymer.dart';
import 'package:core_elements/core_tooltip.dart';

@CustomTag('app-element')

class AppElement extends PolymerElement {

  AppElement.created() : super.created() {  }

  @PublishedProperty(reflect: true) bool isValidationError;

  void attached() {
    super.attached();
    CoreTooltip tt =  new CoreTooltip();
    print(tt);
  }
}

app_element.html

<link rel="import" href="../../packages/polymer/polymer.html">
<link rel="import" href="../../packages/core_elements/core_tooltip.html">

<polymer-element name="app-element">
  <template>
  </template>
  <script type="application/dart" src="app_element.dart"></script>
</polymer-element>