在Dart中创建一个聚合物元素实例,它不是HtmlElement

时间:2014-10-16 08:38:42

标签: dart polymer

我有一个名为NewEntryElement的PolymerElement,我希望在单击一个Button时创建并添加它。

新Entry.html

<polymer-element name="new-Entry" attributes="metaData">
  <!-- a table here -->
</polymer-element>

新Entry.dart

@CustomTag('new-entry')
class NewEntryElement extends PolymerElement {
  @published List<Map> metaData;

  factory NewEntryElement() => document.createElement("new-entry");

  NewEntryElement.created() : super.created() {
    polymerCreated();
  }
}

在我的按钮功能中调用工厂不起作用,因为创建了HtmlElement并且无法将其强制转换为NewEntryElement。所以我也尝试在我的Button功能中调用它:

var newEntry = new Element.tag('new-entry');
(newEntry as NewEntryElement).metaData = this.metaData;

存在同样的问题......所以我需要一种方法来获取我的PolymerElement的实例,这样我就可以将属性metaData分配给Element。

顺便说一句:这是例外:

Exception: Uncaught Error: type 'HtmlElement' is not a subtype of type 'NewEntryElement' in type cast.

1 个答案:

答案 0 :(得分:0)

这通常没有问题。您的聚合物初始化代码或元素导入似乎有问题。

您已在HTML中命名了您的元素"new-Entry",但在代码中使用"new-entry"(大写/小写e)这可能是造成问题的原因。