由于Polymer代码错误,简单的Polymer元素无法在IE中加载

时间:2017-06-20 15:53:21

标签: polymer

我试图让一个基本的Polymer元素在IE 11中工作,但是由于Polymer代码没有正确加载或者语法错误,我看起来很错误。

定制element.html



<link rel="import" href="/node_modules/@polymer/polymer/polymer-element.html">

<script>
  class CustomElement extends Polymer.Element {
    static get is() {
      return "custom-element";
    }
    constructor() {
      super();
      this.textContent = "I'm a custom-element.";
    }
  }
  customElements.define(CustomElement.is, CustomElement);
</script>
&#13;
&#13;
&#13;

的index.html

&#13;
&#13;
<!DOCTYPE html>
<html lang="en">

<head>
  <script type="application/javascript" src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
  <link rel="import" href="custom-element.html">
</head>

<body>
  <custom-element></custom-element>
</body>

</html>
&#13;
&#13;
&#13;

控制台错误显示为&#34;预期&#39;:&#39;&#34;&#39;和&#34;语法错误&#34;在/polymer/lib/utils/case-map.html.js和/polymer/lib/elements/dom-module.html.js等文件中。

有没有其他人在IE 11中使用它?

1 个答案:

答案 0 :(得分:1)

IE11无法识别类的语法,因为ES6规范: https://kangax.github.io/compat-table/es6/

class foo {
    static bar() {
       //..code..
    }
}

它只适用于ES5的方式:

var foo = {};
foo.bar = function() {
  // ..code..
}

因此您需要使用Polymer 1.7+语法:

Polymer({
  is: 'custom-element',
  ready: function(){this.textContent = "I'm a custom-element."}.
})

或使用Babel作为预处理器,将所有ES6代码转换为ES2015。