当前意味着在Dart Polymer中扩展自定义元素?

时间:2014-07-29 18:59:30

标签: dart dart-polymer

我正在尝试创建一些自定义元素,这些元素都使用Polymer和Dart扩展单个自定义元素。遵循Seth Ladd的G +帖子的指示(虽然过时且不受维护,但仍然是我可以找到的用于扩展自定义[非DOM]元素的唯一参考):

https://plus.google.com/+SethLadd/posts/7Ed4GUWZB26

这是我正在尝试做的事情类型的精简示例代码:

基本元素HTML:

<link rel='import' href='packages/polymer/polymer.html'>
<polymer-element name='base-element'>
<template>
  ... stuff here relating to template ...
</template>
<script type='application/dart' src='base-element.dart'></script>
</polymer-element>

基本元素Dart:

import 'package:polymer/polymer.dart';
@CustomTag('base-element')
class BaseElement extends PolymerElement {
  BaseElement.created() : super.created();
  ... other base class stuff here ...
}

第一个自定义子类元素HTML:

<link rel='import' href='packages/polymer/polymer.html'>
<link rel='import' href='base-element.html'>
<polymer-element name='sub-element-1' extends='base-element'>
<script type='application/dart' src='base-element.dart'></script>
</polymer-element>

第一个自定义子类元素Dart:

import 'package:polymer/polymer.dart';
import 'base-element.dart';
@CustomTag('sub-element-1')
class SubElement1 extends BaseElement {
  SubElement1.created() : super.created();
  ... other subclass stuff here ...
}

我遇到的主要问题是Dart编辑器给我的错误(在运行时):

“打破异常:NotSupportedError:类型'子元素-1'的注册失败。'extends'中指定的标记名称是自定义元素名称。请改用继承。”

编辑器似乎不喜欢子元素HTML中的 extends ='base-element'部分。但是如果你拿出那个部分,即使Dart代码确实使用继承,基本元素的模板化HTML也会被忽略。所以,最后我对这篇文章的问题是:

您目前如何创建扩展其他自定义元素的自定义元素,以便他们使用基本元素的模板?

非常感谢任何帮助和/或信息,并提前感谢。

1 个答案:

答案 0 :(得分:1)

我在导入基本元素的Dart文件时显然有一个拼写错误(在我的实际代码中,而不是上面的例子中),这会丢掉所有其他内容。这仍然是扩展自定义元素的正确方法,子元素将使用基本元素的模板。有时,最小的事情会在编程时引起最大的麻烦......