我试图让一个基本的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;
的index.html
<!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;
控制台错误显示为&#34;预期&#39;:&#39;&#34;&#39;和&#34;语法错误&#34;在/polymer/lib/utils/case-map.html.js和/polymer/lib/elements/dom-module.html.js等文件中。
有没有其他人在IE 11中使用它?
答案 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。