我试图将一些传统的Polymer 1.x javascript转换为es6模块,以使代码更容易测试。我遇到了一个奇怪的错误,其中。$有时是未定义的。我发现包含一个空脚本(<script> </script>
)似乎可以缓解Chrome中的问题,而不是Firefox。添加计时器以便从模块导入的代码加载时间更长也有助于Chrome,但不支持Firefox。我不确定空脚本是否神奇,或者是否存在异步事件,而空脚本只会让事情变慢,以使事件完成。
以下是我使用的dom:
<script> </script>
<script type="module">
import buildView from "./scripts/live-production-view.js";
buildView();
</script>
这是它加载的javascript:
export default () =>
Polymer(Object.assign(
shiftSelectionActions('/data/live-production', Polymer),
{ is, properties, observers, ready, detached },
));
尝试在ready函数中访问。$时发生错误(返回undefined)。