Skip to content

Support scoped slots #210

Closed
Closed
@Gr8Gatsby

Description

@Gr8Gatsby

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions