我正在将现有的Web应用程序转换为Polymer。 Web应用程序由组件(在Knockout组件体系结构中)和模块组成。两者都使用RequireJS加载。我看到如何将Knockout组件转换为Polymer自定义元素,但不知道如何处理JavaScript模块。 RequireJS模块返回一个JavaScript对象,该对象通过参数传递给依赖于它的JavaScript到“define”函数。如果模块代码是通过HTML导入而不是RequireJS加载的,似乎没有办法获得该对象。如何将AMD模块导入Polymer自定义元素?
例如,若干现有组件使用moment.js
模块进行日期/时间操作。他们通过RequireJS加载它,它向它传递了对象的引用。在其中一篇Polycast视频中,Rob Dobson表示,推荐的做法是编写一个moment.html
文件,其中包含<script>
标签以导入moment.js
。然后,聚合物自定义元素可以执行moment.html
的HTML导入,但这不会使组件访问由moment.js
模块返回的对象。 Moment不会将该对象放入全局名称空间,那么Polymer自定义元素如何访问该时刻对象?
我使用聚合物的“时刻”。您唯一需要做的就是使用源代码导入脚本,然后您可以直接在您的ploymer函数中使用它,如'moment(date).format('D MMM YYYY')' – a1626
这个时刻的使用已被废弃。使用它会在控制台中产生以下消息:“弃用警告:不推荐使用通过全局作用域访问Moment,并且将在即将发布的版本中删除它。”重点在于应用程序中的模块不会将任何内容放入全局名称空间,而是通过RequireJS“define”函数将引用传递给相关组件。 –
你做了一个凉亭安装的时刻? – a1626