Я видел много других подобных ошибок, но я не уверен, связаны они или нет. Я в основном пытаюсь динамически создавать полимерные компоненты и добавлять их на существующую страницу, когда это работает, я хочу создать свои собственные компоненты Polymer и динамически добавлять/удалять их на странице и с нее.Исключение: тип 'HtmlElement' не является подтипом типа
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);
});
});
}
Исключение я получаю:
Breaking on exception: type 'HtmlElement' is not a subtype of type 'PaperInput' of 'function result'.
Если я пытаюсь с помощью объекта Element:
Element y = new Element.tag('paper-input');
div.append(y);
Breaking on exception: type 'HtmlElement' is not a subtype of type 'PaperInput' of 'function result'.
Exception: type 'HtmlElement' is not a subtype of type 'PaperInput' of 'function result'. (package:paper_elements/paper_input.dart:40)
Я тоже любопытно, почему все так массивное:
Я использую стандартный редактор дротика и нажмите запустить в Dartium для запуска приложения.
Update:
Я обновил код, получая различные ошибки в настоящее время. Придется обновить версию полимера в pubspec.yaml, любые из них вызывают ошибки.
Browser Console:
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 и что import я могу видеть под пакетом 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);
Может быть, ошибка в папье-элемент, будет исследовать и при необходимости зарегистрируйте ошибку.
Я обновил код и вопрос, исправляя ошибки, вызванные другими ошибками, из-за которых ничего не загружается. Кроме того, какова последняя версия полимера, которую я могу использовать в дротике? Документы предложили 0.12 - 0.13, но я видел больше номеров версий в образцах, плавающих по сети. –
0.15.3 является последним, насколько я помню, и вы можете и использовать его. Чтобы избавиться от обновления ошибок до более поздней версии, указав минимальную версию в pubspec.yaml, запустите 'pub upgrade', и если вы все равно получите аналогичные ошибки, запустите' pub cache repair' в командной строке. –
Я не уверен, откуда взять паб, поэтому я поместил его из редактора дротиков в '/ usr/bin/pub', выполнил' pub upgrade' и 'pub cache repair' после обновления версии дротика. Получение большой трассировки стека теперь, по крайней мере, кнопки и текст загружаются сейчас, хотя и все еще массивны, как на скриншоте. –