2016-02-12 79 views
1

我正在尝试使用Dart这个不错的端口paper-datatable implementation使用custom_element_apigenpaper-datatable Port to Dart with custom_element_apigen:does not working

发生了一些问题,并根据我的理解寻求解决方案(可能包含更多问题!)。

但是,仍然出现错误,无法继续前进。我需要一些关于如何端口飞镖的帮助!我将简要描述给出的步骤,错误和解决方案以及项目测试源代码的链接:

1)我按照https://github.com/dart-lang/custom-element-apigen的步骤操作。我曾在Windows上的问题,但我得到了后(custom_element_apigen: gives an error importing paper-datatable to Dart

2)apigen.yamlcustom_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 
  • 一些路径进口上paper-datatable*.(html and dart)文件是非。体育:import 'packages\polymer_interop\src\js\debug\src\lib\template\templatizer.dart';我在paper_datatable_column.dart上更改为import 'package:polymer_interop/src/behaviors/templatize.dart';

  • 我改变保留达特字defaultdefaultxpaper_datatable_column.dartpaper_datatable_card.dartget defaultx => jsElement[r'default'];set defaultx(value) { jsElement[r'default'] = (value is Map || (value is Iterable && value is! JsArray)) ? new JsObject.jsify(value) : value;}指令;

  • 在以下erros发生在几个聚合物组分。 P.e .: Failed to execute 'registerElement' on 'Document': Registration failed for type 'iron-meta'. A type with that name is already registered. 我将所有路径更改为paper-datatable*.*文件以获得聚合物和聚合物元素的官方包(pub.dartlang)。 P.e .: <link rel="import" href="paper_icon_button_nodart.html"><link rel="import" href="../../packages/polymer_elements/paper_icon_button_nodart.html">。注册问题不会发生更多!

  • 但现在,出现以下问题,我不知道如何解决它:在调试控制台上出现以下消息:Uncaught SyntaxError: Unexpected token =>。 Web应用程序在浏览器上工作,但不显示纸质数据表。

  • 我的完整测试项目(webstorm)是https://github.com/supermuka/paper_datatable_port_dart_demo

    有一些错误在我如何使用的飞镖custom_element_apigen(和apigen.yaml)?我在路径上改变了一些错误吗?我还需要改变一些其他来源?

    谢谢!

    回答

    0

    很可能您在编辑文件时刚刚创建了语法错误。这就是说,有些选项可以完成您手动完成的大部分工作,而且这也使得将来更易于更新。

    • omit_imports:这是在files_to_generate部分单个项目使用。它可以用来完全摆脱templatizer导入,解决问题#3。见示例here
    • name_substitutions:这用在files_to_generate部分个人物品,并允许您重命名字段。您可以使用它来解决问题#4,例如here
    • stubs_to_generate:此选项允许您生成从其他包中实际导入元素的存根,这应该可以解决上面列出的问题#5。请参阅示例用法here

    希望这会有所帮助,并应用这些选项只会解决您的问题。

    +0

    关于omit_imports,有没有办法摆脱同一项目上的两个或两个以上的进口?如何知道什么进口省略? – Muka

    +1

    omit_imports是一个yaml列表,所以你可以添加尽可能多的你想要的。我之前需要省略的唯一事情就是进口templatizer。 –

    +0

    为'=>'语法这是一个JavaScript关闭的新语法,目前尚未在dartium中支持,但在chrome中受支持。 –

    相关问题