我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)
基本元素Dart:
import 'package:polymer/polymer.dart';
@CustomTag('base-element')
class BaseElement extends PolymerElement {
BaseElement.created() : super.created();
... other base class stuff here ...
}
Run Code Online (Sandbox Code Playgroud)
第一个自定义子类元素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>
Run Code Online (Sandbox Code Playgroud)
第一个自定义子类元素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 ...
}
Run Code Online (Sandbox Code Playgroud)
我遇到的主要问题是Dart编辑器给我的错误(在运行时):
"打破异常:NotSupportedError:类型'子元素-1'的注册失败.'extends'中指定的标记名称是自定义元素名称.请改用继承."
编辑器似乎不喜欢子元素HTML中的extends ='base-element'部分.但是如果你拿出那个部分,即使Dart代码确实使用了继承,基本元素的模板化HTML也会被忽略.所以,最后我对这篇文章的问题是:
您当前如何创建扩展其他自定义元素的自定义元素,以便它们使用基本元素的模板?
任何帮助和/或信息将不胜感激,并提前感谢.
显然,我在导入基本元素的 Dart 文件时出现了拼写错误(在我的实际代码中,而不是上面的示例),这导致其他所有内容都失败了。这仍然是扩展自定义元素的正确方法,并且子元素将使用基本元素的模板。有时,在编程时,最小的事情可能会引起最大的头痛......
| 归档时间: |
|
| 查看次数: |
508 次 |
| 最近记录: |