SOURCE
- the type of the input object used inside the templatepublic final class TemplateRenderer<SOURCE> extends Renderer<SOURCE>
Renderer
instances, with fluent API.of(String)
,
https://www.polymer-project.org/2.0/docs/devguide/templates,
Serialized FormModifier and Type | Method and Description |
---|---|
static <SOURCE> TemplateRenderer<SOURCE> |
of(String template)
Creates a new TemplateRenderer based on the provided template.
|
TemplateRenderer<SOURCE> |
withEventHandler(String handlerName,
SerializableConsumer<SOURCE> handler)
Sets an event handler for events from elements inside the template.
|
TemplateRenderer<SOURCE> |
withProperty(String property,
ValueProvider<SOURCE,?> provider)
Sets a property to be used inside the template.
|
getEventHandlers, getValueProviders, render, render, setEventHandler, setProperty
public static <SOURCE> TemplateRenderer<SOURCE> of(String template)
<template>
element, and works with Polymer data binding syntax.
Examples:
// Prints the index of the item inside a repeating list
TemplateRenderer.of("[[index]]");
// Prints the property of an item
TemplateRenderer.of("<div>Property: [[item.property]]</div>");
SOURCE
- the type of the input object used inside the templatetemplate
- the template used to render items, not null
withProperty(String, ValueProvider)
public TemplateRenderer<SOURCE> withProperty(String property, ValueProvider<SOURCE,?> provider)
[[item.property]]
syntax.
Examples:
// Regular property
TemplateRenderer.<Person> of("<div>Name: [[item.name]]</div>")
.withProperty("name", Person::getName);
// Property that uses a bean. Note that in this case the entire "Address" object will be sent to the template.
// Note that even properties of the bean which are not used in the template are sent to the client, so use
// this feature with caution.
TemplateRenderer.<Person> of("<span>Street: [[item.address.street]]</span>")
.withProperty("address", Person::getAddress);
// In this case only the street field inside the Address object is sent
TemplateRenderer.<Person> of("<span>Street: [[item.street]]</span>")
.withProperty("street", person -> person.getAddress().getStreet());
Any types supported by the JsonSerializer
are valid types for the
TemplateRenderer.property
- the name of the property used inside the template, not
null
provider
- a ValueProvider
that provides the actual value for the
property, not null
public TemplateRenderer<SOURCE> withEventHandler(String handlerName, SerializableConsumer<SOURCE> handler)
on-event
syntax.
Examples:
// Standard event
TemplateRenderer.of("<button on-click='handleClick'>Click me</button>")
.withEventHandler("handleClick", object -> doSomething());
// You can handle custom events from webcomponents as well, using the same syntax
TemplateRenderer.of("<my-webcomponent on-customevent=
'onCustomEvent'></my-webcomponent>")
.withEventHandler("onCustomEvent", object -> doSomething());
The name of the function used on the on-event
attribute should be
the name used at the handlerName parameter. This name must be a valid
Javascript function name.handlerName
- the name of the handler used inside the
on-event="handlerName"
, not null
handler
- the handler executed when the event is triggered, not
null
Copyright © 2020. All rights reserved.