Портативный в дартс с данными на бумаге с параметром custom_element_apigen: не работает

Я пытаюсь порт Dart эту хорошую реализацию с возможностью обработки данных на бумаге, используя custom_element_apigen,

Возникли некоторые проблемы, и я пытался найти решения в соответствии с моим пониманием (возможно, включал больше проблем!).

Тем не менее, по-прежнему выдается ошибка и не может двигаться дальше. Мне нужна помощь о том, как порт в Dart!!! Я кратко опишу шаги, ошибки и решения, которые дали и ссылку на исходный код теста проекта:

1) Я следую за шагами, согласившись с https://github.com/dart-lang/custom-element-apigen. У меня были проблемы в Windows, но я решил их после ( custom_element_apigen: выдает ошибку при импорте данных из бумаги в Dart)

2) apigen.yaml используется с custom_element_apigen не понятно как настроить. Я использовал метод "проб и ошибок", пока больше не возникнет ошибка. Это было так:

files_to_generate:
  - paper-datatable\paper-datatable.html
  - paper-datatable\paper-datatable-column.html
  - paper-datatable\paper-datatable-edit-dialog.html
  - paper-datatable\paper-datatable-card.html
  - paper-datatable\paper-datatable-styles.html
  - paper-datatable\datatable-icons.html

files_to_load:
  - package:polymer_elements/src/paper-material/paper-material.html
  - package:polymer_elements/src/iron-ajax/iron-request.html
  - package:polymer_elements/src/iron-ajax/iron-ajax.html
  - package:polymer_elements/src/iron-form/iron-form.html
  - package:polymer_elements/src/iron-meta/iron-meta.html
  - package:polymer_elements/src/iron-icon/iron-icon.html
  - package:polymer_elements/src/iron-iconset-svg/iron-iconset-svg.html
  - package:polymer_elements/src/paper-ripple/paper-ripple.html
  - package:polymer_elements/src/paper-checkbox/paper-checkbox.html
  - package:polymer_elements/src/neon-animation/animations/opaque-animation.html
  - package:polymer_elements/src/neon-animation/animations/fade-in-animation.html
  - package:polymer_elements/src/neon-animation/animations/fade-out-animation.html
  - package:polymer_elements/src/paper-tooltip/paper-tooltip.html
  - package:polymer_elements/src/iron-resizable-behavior/iron-resizable-behavior.html
  - package:polymer_interop/src/js/debug/src/lib/template/templatizer.html
  1. Некоторые пути импорта были ошибками на paper-datatable*.(html and dart) файлы. pe: import 'packages\polymer_interop\src\js\debug\src\lib\template\templatizer.dart'; Я поменял на import 'package:polymer_interop/src/behaviors/templatize.dart'; на paper_datatable_column.dart,

  2. Я изменил зарезервированное слово Дарт default в defaultx на get defaultx => jsElement[r'default']; а также set defaultx(value) { jsElement[r'default'] = (value is Map || (value is Iterable && value is! JsArray)) ? new JsObject.jsify(value) : value;} инструкции по paper_datatable_column.dart а также paper_datatable_card.dart;

  3. После следующих ошибок произошли в нескольких полимерных компонентов. Pe: Failed to execute 'registerElement' on 'Document': Registration failed for type 'iron-meta'. A type with that name is already registered. Я изменил все пути в paper-datatable*.* файлы для получения официального пакета (pub.dartlang) из полимера и полимерных элементов. Pe: <link rel="import" href="paper_icon_button_nodart.html"> в <link rel="import" href="../../packages/polymer_elements/paper_icon_button_nodart.html">, Проблемы с регистром больше не возникает!

  4. Но теперь возникает следующая проблема, и я не знаю, как ее решить: На консоли отладки появляется следующее сообщение: Uncaught SyntaxError: Unexpected token =>, Веб-приложение работает в браузере, но данные на бумаге не отображаются.

Мой полный тестовый проект (веб-шторм) находится по https://github.com/supermuka/paper_datatable_port_dart_demo

Есть ли что-то неправильное в том, как я использовал дартс? custom_element_apigen (а также apigen.yaml)? Неужели я что-то не так изменил на путях? Мне также нужно изменить какой-то другой источник?

Спасибо!

1 ответ

Скорее всего, вы только что создали синтаксическую ошибку при редактировании файлов. Тем не менее, есть встроенные опции для выполнения большинства вещей, которые вы делали вручную, и это также облегчает обновление в будущем.

  • omit_imports: используется для отдельных элементов в разделе files_to_generate. С его помощью можно полностью избавиться от импорта шаблонизатора, решив проблему № 3. Смотрите пример здесь.
  • name_substitutions: используется для отдельных элементов в разделе files_to_generate и позволяет переименовывать поля. Вы можете использовать это для решения проблемы № 4, пример здесь.
  • stubs_to_generate: эта опция позволяет вам генерировать заглушки, которые фактически импортируют элементы из другого пакета, это должно решить проблему № 5, которую вы перечислили выше. Смотрите пример использования здесь.

Надеюсь, это поможет, и применение этих вариантов просто решит ваши проблемы.

Другие вопросы по тегам