Dart2Js с ошибкой выполнения полимера

Мое приложение Dart отлично работает в Dartium, но когда я компилирую в js, появляется эта ошибка:

Uncaught TypeError: Object #<HTMLDocument> has no method 'registerElement' 

Мой pubspec выглядит так:

name: Capira_v8
description: Capira v8
dependencies:
  bootjack: any
  ctrl_alt_foo: any
  event_bus: any
  js: any
  json_object: any
  polymer: any
transformers:
- polymer:
    entry_points: web/capira_v8.html

Я использую:
Dart Editor версии 1.2.0.release (СТАБИЛЬНАЯ)
Dart SDK версии 1.2.0
OS X 10.8.5

Я видел эту тему, но это не помогло: Link

Спасибо за любые подсказки!


person LinusK    schedule 28.02.2014    source источник


Ответы (1)


можешь попробовать добавить

@MirrorsUsed(symbols: const['registerElement'])
import 'dart:mirrors';

в ваш файл Dart.

person Günter Zöchbauer    schedule 28.02.2014
comment
Я пробовал это, но это не сработало. Уточните, пожалуйста, какой файл вы имеете в виду? Вы имеете в виду файл, в котором находится основной метод, или файлы, где я использую полимер? - person LinusK; 28.02.2014
comment
Это не имеет значения. Некоторый файл Dart в вашем проекте, в котором разрешен оператор импорта. Это сделано для предотвращения встряхивания дерева «registerElement». Вопрос, который вы связали, определяет конкретную версию полимера. Какую полимерную версию вы используете? (вы видите это, когда вы разворачиваете каталог пакетов в DartEditor за именем) или когда вы открываете файл pubspec.lock. - person Günter Zöchbauer; 28.02.2014
comment
Я попробовал это, но это все еще не работает. полимер: 0,9,5, полимер_выражения: 0,9,1 - person LinusK; 28.02.2014
comment
Трудно сказать, что может быть причиной. - person Günter Zöchbauer; 28.02.2014
comment
Я решил это. Был вызов document.registerElement, но в текущем Dartium поддерживается только document.register. Включение функций enable-experimental-web-platform в Chrome также работает. - person LinusK; 28.02.2014
comment
В основном это проблема: ссылка - person LinusK; 28.02.2014
comment
к вашему сведению -- пара замечаний относительно @MirrorsUsed. Я не думаю, что вам это понадобится для registerElement. Это только для вещей, используемых из {{bindings}} или операций отражения, таких как PathObserver(foo.bar)... если имя не появляется в строке или HTML-файле, вам, вероятно, не нужен MirrorsUsed. Также вы можете поместить @reflectable в класс или член вместо MirrorsUsed, что проще ИМХО. - person Jenny Messerly; 06.03.2014
comment
Также: вам не нужно включать экспериментальные функции в Dartium. Я предполагаю, что вы забыли включить пакеты polyfill shadow_dom или custom_elements: pub.dartlang.org/packages/custom_element или pub.dartlang.org/packages/shadow_dom (обратите внимание, что они находятся в процессе объединения в pub.dartlang. org/packages/web_components для полимера 0.10.0-pre.0) - person Jenny Messerly; 06.03.2014