2014-12-16 3 views
0

Я видел много других подобных ошибок, но я не уверен, связаны они или нет. Я в основном пытаюсь динамически создавать полимерные компоненты и добавлять их на существующую страницу, когда это работает, я хочу создать свои собственные компоненты 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)

Я тоже любопытно, почему все так массивное:

enter image description here

Я использую стандартный редактор дротика и нажмите запустить в 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); 

Может быть, ошибка в папье-элемент, будет исследовать и при необходимости зарегистрируйте ошибку.

ответ

1

трансформаторные конфигурации пропускает установку entry_page и пользовательский основной метод является неполным для полимерных приложений (см https://stackoverflow.com/a/20982658/217408)
Извините за короткий ответ, я на моем телефоне.

+0

Я обновил код и вопрос, исправляя ошибки, вызванные другими ошибками, из-за которых ничего не загружается. Кроме того, какова последняя версия полимера, которую я могу использовать в дротике? Документы предложили 0.12 - 0.13, но я видел больше номеров версий в образцах, плавающих по сети. –

+1

0.15.3 является последним, насколько я помню, и вы можете и использовать его. Чтобы избавиться от обновления ошибок до более поздней версии, указав минимальную версию в pubspec.yaml, запустите 'pub upgrade', и если вы все равно получите аналогичные ошибки, запустите' pub cache repair' в командной строке. –

+0

Я не уверен, откуда взять паб, поэтому я поместил его из редактора дротиков в '/ usr/bin/pub', выполнил' pub upgrade' и 'pub cache repair' после обновления версии дротика. Получение большой трассировки стека теперь, по крайней мере, кнопки и текст загружаются сейчас, хотя и все еще массивны, как на скриншоте. –

Смежные вопросы