Я пытаюсь использовать TemplateRenderer
там, где я хочу распространять модели на внешний интерфейс.
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)
);
это мой шаблон:
<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>
Шаблон
и user-card
также включен в шаблон, где я использую сетку. Я могу успешно отобразить свойства test
и id
, но не могу работать с userDetail
и licenses
. Может кто-нибудь сказать мне, что я делаю не так? Я пользуюсь ваадином 13.0.5
.