- From: Wired Earp <notifications@github.com>
- Date: Wed, 06 Sep 2017 04:34:45 -0700
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Wednesday, 6 September 2017 11:35:06 UTC
Couldn't you just use another attribute instead of `is` and not rewrite the entire specification?
```html
<table is="very-generic" also="bar lorem"><table>
```
```javascript
const behaviors = {
bar: { connectedCallback(elm) { elm.classList.add('bar'); } }
lorem: { connectedCallback(elm) { elm.classList.add('lorem'); } }
};
const getbehaviors(elm) => elm.getAttribute('also').split(' ').map(name => behaviors[name]);
components.define('very-generic', class {
connectedCallback() {
getbehaviors(this).forEach(b => b.connectedCallback(this));
}
});
```
- or solve it entirely in the JavaScript layer with some kind of mixin (or plugin) strategy? It seems like the high level frameworks could facilitate something like this in a number of ways without requiring a change to the low level spec, which I assume should be either based on classical inheritance with all the imagined problems it can cause *or* mixins with all the actual confusement it can cause; certainly not both?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/issues/658#issuecomment-327456237
Received on Wednesday, 6 September 2017 11:35:06 UTC