Description
SOMA#288
Migrated issue
Notes:
UE and polymer supports something called scoped slots, which means a component can pass an inert template as the default slot, and let the component to use that template to produce internal created elements, e.g.:
<x-foo>
<template>
<div>
some text
</div>
</template>
</x-foo>
In the example above, x-foo can create as many fragments as desired from the provide template. In raptor it means that the template will be compiled to a function, and that factory function can be invoked from x-foo at any given time.
The problem is the ambiguity of the data that can be used by that fragment, e.g.:
<x-foo>
<template>
<div onclick={handleClick}>
{someName}
</div>
</template>
</x-foo>
Who owns the div
? who implements handleClick
event listener? where is someName
coming from?
VUE solves most of this problems by providing an explicit mapping of what the fragment can use via a template tag attributes, which sounds good, but still the ownership of the instances of div
is ambiguous when it comes to web component semantics. We need to investigate more. I'm not sure about polymer implementation either.