ln.templates/ln.templates/html/TemplateElement.SlotElement.cs

23 lines
630 B
C#

namespace ln.templates.html;
public partial class TemplateElement
{
private class SlotElement : TemplateElement
{
public SlotElement(string tagName)
:base(tagName){}
public string Name => GetAttribute("name", "");
public override void RenderElement(Context renderContext)
{
if (renderContext.TryGetSlot(Name, out Element slot))
{
RenderElements(new Context(renderContext), new []{ slot });
}
else
{
RenderElements(new Context(renderContext), Children);
}
}
}
}