任何人都可以帮助我解决疑问...我正在 Safari 上测试新的 Polymer 2.0 预览,但它似乎无法正常工作。问题是,我在 index.htm 中使用了一个简单的代码(只是我的元素),加载了 polyfill,但我没有使用 gulp 和 BrowserSync 构建和服务。碰巧在 Chrome 和 Mozila 上工作,但在 Safari 上却没有。该组件甚至不加载。
在 Safari 上投放之前我需要构建吗?
它只是一个简单的代码来测试......但无论如何我都会发布:
指数:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Polymer element - Test</title>
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="/src/my-element.html"></link>
</head>
<body>
<my-element></my-element>
</body>
<script>
window.addEventListener('WebComponentsReady', function() {
alert('Web Components Working');
});
</script>
</html>
我的元素:
<link rel="import" href="../bower_components/polymer/polymer-element.html">
<dom-module id="my-element">
<template>
<!-- Style -->
<style>
:host {
display: block;
}
</style>
<h2>Name : [[name]]</h2>
<slot></slot>
</template>
<script>
// Extend Polymer.Element base class
class MyElement extends Polymer.Element {
static get is(){ return 'my-element' }
// properties
static get properties() {
return {
name: {
type: String,
value: 'my-element'
}
};
}
// observers
static get observers() {
return ['_nameChanged(name)'];
}
// constructor
constructor() {
super();
console.log('my-element > created');
}
connectedCallback(){
super.connectedCallback();
console.log('my-element > attached');
}
disconnectedCallback(){
}
attributeChangeCallback(){
}
// ready > add listeners and attributes at appropriate callback
ready() {
this.addEventListener('click', (e) => {
this._handleClick(e);
});
super.ready();
console.log('my-element > ready');
}
_handleClick(e) {
console.log(e.type);
}
_nameChanged(name){
console.log(`Name: ${name}`);
// Select the elements
// this.$.
// this.$.
}
}
// Register custom element definition using standard platform API
customElements.define(MyElement.is, MyElement);
</script>
</dom-module>