-
Notifications
You must be signed in to change notification settings - Fork 0
/
movie.js
33 lines (30 loc) · 927 Bytes
/
movie.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
export class Movie extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
this.setMovie();
}
setMovie(){
const div = document.createElement(`div`, { is: this.ELEMENT_NODE })
div.textContent = this.getAttribute('movie');
this.shadowRoot.appendChild(div)
}
static getObservedAttributes() {
return ['movie'];
}
/**
* Called when an attribute changes
* @param {string} attrName
* @param {string} oldVal
* @param {string} newVal
*/
async attributeChangedCallback(attrName, oldVal, newVal) {
if (attrName === "movie") {
console.log('movie', newVal, oldVal)
if (oldVal !== newVal) {
this.shadowRoot.appendChild(document.createElement('div', { is: this.ELEMENT_NODE }))
this.textContent = newVal;
}
}
}
}