Ad
Creating A Page Building Framework In Javascript Utilizing CustomElements
Me and my friend are trying to make a javascript framework that allows users to make elements and customize them. As well as manage them somehow.
We were hoping that we could somehow make a custom element like this
class Header extends HTMLElement {
constructor() {
super();
}
connectedCallback(){
this.title = this.getAttribute("title")
console.log(this.getAttribute("title"))
if(this.hasAttribute("drawer-button")){
}
this.innerHTML =
`
<div class="--e-header-1">
<e-button></e-button>
<div class="header-title">
<h1>${this.title}</h1>
</div>
</div>
`
}
}
customElements.define('e-header', Header);
its cool that you can use it in HTML like this <e-header></e-header>
but we were hoping that we could do something like this
var el = new Header(//put in options maybe);
document.append(el)
we keep getting this error Uncaught TypeError: Illegal constructor
how would we go about doing something like this and are we on the right track
Ad
Answer
Do you want to do something like this?
I have passed option title
to the class and set that in the class.
class Header extends HTMLElement {
constructor(options) {
super();
this.title = options.title;
}
connectedCallback() {
this.title = this.getAttribute("title")
console.log(this.getAttribute("title"))
if (this.hasAttribute("drawer-button")) {
}
this.innerHTML =
`
<div class="--e-header-1">
<e-button></e-button>
<div class="header-title">
<h1>${this.title}</h1>
</div>
</div>
`
}
}
customElements.define('e-header', Header);
var el = new Header({
'title': 'headerTitle'
});
document.body.append(el)
Ad
source: stackoverflow.com
Related Questions
- → How to update data attribute on Ajax complete
- → October CMS - Radio Button Ajax Click Twice in a Row Causes Content to disappear
- → Octobercms Component Unique id (Twig & Javascript)
- → Passing a JS var from AJAX response to Twig
- → Laravel {!! Form::open() !!} doesn't work within AngularJS
- → DropzoneJS & Laravel - Output form validation errors
- → Import statement and Babel
- → Uncaught TypeError: Cannot read property '__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' of undefined
- → React-router: Passing props to children
- → ListView.DataSource looping data for React Native
- → Can't test submit handler in React component
- → React + Flux - How to avoid global variable
- → Webpack, React & Babel, not rendering DOM
Ad