I'm trying to use TemplateRenderer
where I want to propagate models to front-end.
userGrid.addColumn(TemplateRenderer.<UserProjection>of(
"<user-card"
+ " userDetail='[[item.userDetail]]'"
+ " licenses='[[item.licenses]]' "
+ " test='[[item.test]]'"
+ " id='[[item.id]]'"
+ ">"
+ "</user-card>")
.withProperty("userDetail", user -> user)
.withProperty("licenses",
user -> userService.findAllUserLicenses(user.getId()).stream().map(License::new).collect(Collectors.toList()))
.withProperty("test", UserProjection::getEmail)
.withProperty("id", UserProjection::getId)
);
this is my template:
<link rel="import" href="../../bower_components/polymer/polymer-element.html">
<link rel="import" href="../../styles/shared-styles.html">
<dom-module id="user-card">
<template>
<div class="content" on-click="_onClick">
<div>[[test]] [[id]] [[userDetail.id]] </div>
<div class="user-details">
<h1>[[userDetail.firstName]] [[userDetail.lastName]]</h1>
<h3>[[userDetail.email]]</h3>
</div>
<dom-repeat items="[[licenses]]">
<div class="license">
{{item.validTo}}
</div>
</dom-repeat>
</div>
</template>
<script>
class UserCard extends Polymer.Element {
static get is() {
return "user-card";
}
_onClick() {
this.dispatchEvent(new CustomEvent('card-click'));
}
}
window.customElements.define(UserCard.is, UserCard);
</script>
</dom-module>
and user-card
template is also included in template where I'm using the grid. I can successfully display properties test
and id
however I'm unable to work with userDetail
and licenses
. Can somebody tell me what am I doing wrong? I'm using vaadin 13.0.5
.