【发布时间】:2014-12-16 14:57:31
【问题描述】:
我见过很多其他类似的错误,但我不确定它们是否相关。 我基本上是在尝试动态创建聚合物组件并将它们添加到现有页面,一旦工作正常,我想创建自己的聚合物组件并在页面中动态添加/删除它们。
pubspec.yaml:
name: alm
description: alm
dependencies:
browser: any
polymer: ">0.15.3"
paper_elements: any
transformers:
- polymer:
entry_points:
- web/index.html
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
<link rel="import" href="packages/paper_elements/paper_button.html">
</head>
<body unresolved>
<script type="application/dart" src="index.dart"></script>
<paper-button raised class="colored">colored</paper-button>
<paper-button raised disabled>disabled</paper-button>
<div id="more-buttons"></div>
<script src="packages/browser/dart.js"></script>
</body>
</html>
index.dart:
import 'dart:html';
import 'package:polymer/polymer.dart';
import 'package:paper_elements/paper_input.dart';
void main(){
initPolymer().run(() {
Polymer.onReady.then((_) {
DivElement div = querySelector("#more-buttons");
div.appendText("text 1 2 3");
PaperInput pinput = new PaperInput.created();
div.append(pinput);
});
});
}
我得到的异常:
打破异常:类型“HtmlElement”不是类型的子类型 '函数结果'的'PaperInput'。
如果我尝试使用 Element 对象:
Element y = new Element.tag('paper-input');
div.append(y);
打破异常:类型“HtmlElement”不是类型的子类型 '函数结果'的'PaperInput'。
例外:“HtmlElement”类型不是“PaperInput”类型的子类型 '函数结果'。 (包:paper_elements/paper_input.dart:40)
我也很好奇为什么一切都如此庞大:
我正在使用标准的 dart 编辑器,然后在 Dartium 中单击运行以运行应用程序。
更新:
我已经更新了代码,现在得到了不同的错误。 必须更新 pubspec.yaml 中的聚合物版本,任何都会导致错误。
浏览器控制台:
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:8080/packages/web_components/webcomponents.js
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:8080/packages/web_components/interop_support.html
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:8080/packages/custom_element_apigen/src/common.dart
An error occurred loading file: package:custom_element_apigen/src/common.dart
我现在看到的是按钮短暂闪烁,然后是白屏。
工具输出给我以下错误:
Resolving dependencies...
Got dependencies!
--- 6:10:00 PM Starting pub serve : ______ ---
Loading source assets...
Loading polymer transformers...
Serving alm web on http://localhost:8080
[Warning from ImportInliner on alm|web/index.html]:
line 10, column 1 of package:paper_elements/src/polymer/polymer.html: Failed to inline HTML import: Could not find asset web_components|lib/interop_support.html.
null. See http://goo.gl/5HPeuP#polymer_25 for details.
<link rel="import" href="../../../../packages/web_components/interop_support.html">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Build completed successfully
查看建议的链接:
Error while inlining an import
An error occurred while inlining an import in the polymer build. This is often the result of a broken HTML import.
我真的看不出我的 index.html 有什么问题,我可以在 paper_elements 包下看到导入。
更新2:
将聚合物版本更新到 >0.15.3,还运行了 pub upgrade 和 pub cache repair 现在看到不同的异常:
Exception: Uncaught Error: created called outside of custom element creation.
Stack Trace:
#0 Blink_Utils.initializeCustomElement (dart:_blink:31040)
#1 _Utils.initializeCustomElement (dart:html:41640)
#2 _initializeCustomElement (dart:html:41835)
#3 Element.Element.created (dart:html:11675)
#4 HtmlElement.HtmlElement.created (dart:html:17615)
#5 HtmlElement&DomProxyMixin.HtmlElement&DomProxyMixin.created (package:paper_elements/paper_input.dart:4:1)
#6 HtmlElement&DomProxyMixin&PolymerProxyMixin.HtmlElement&DomProxyMixin&PolymerProxyMixin.created (package:paper_elements/paper_input.dart:4:1)
#7 PaperInput.PaperInput.created (package:paper_elements/paper_input.dart:39:26)
#8 main.<anonymous closure>.<anonymous closure> (http://localhost:8080/index.dart:12:31)
#9 _RootZone.runUnary (dart:async/zone.dart:1155)
#10 _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:484)
#11 _Future._propagateToListeners (dart:async/future_impl.dart:567)
#12 _Future._completeWithValue (dart:async/future_impl.dart:358)
#13 _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:412)
#14 _asyncRunCallbackLoop (dart:async/schedule_microtask.dart:41)
#15 _asyncRunCallback (dart:async/schedule_microtask.dart:48)
#16 _handleMutation (dart:html:41819)
对于纸质按钮似乎工作正常,按钮实际显示:
PaperButton y = new PaperButton();
y.text = "KOTS";
y.raised = true;
div.append(y);
可能是纸张元素中的错误,如果需要,将调查并记录错误。
【问题讨论】:
标签: dart dart-polymer dart-html