3.7.2.5.2. Работа с данными

Для загрузки данных просто поместите элементы cuba-data в HTML и укажите требуемые атрибуты.

Загрузка Сущностей

Используйте cuba-entities для загрузки сущностей. Если указаны атрибуты entity-name и view, элемент загрузит список сущностей и передаст его для привязки данных в Polymer через свойство data:

<cuba-entities entity-name="sec$User" view="_local" data="{{users}}"></cuba-entities>

Теперь отобразить данные можно очень просто:

<template is="dom-repeat" items="[[users]]" as="user">
  <div>[[user.login]]</div>
</template>

Использование предопределенных JPQL запросов

Составьте запрос, как описано здесь.

Используйте элемент cuba-query для получения результатов запроса. При необходимости в запрос можно передать параметры с помощью свойства params:

<cuba-query id="query"
            auto="[[auto]]"
            entity-name="sec$User"
            query-name="usersByName"
            data="{{users}}">
</cuba-query>

<template is="dom-repeat" items="[[users]]" as="user">
  <div>[[user.login]]</div>
</template>

Вызов Сервиса

Зарегистрируйте сервис и его методы, как описано здесь. Используйте элемент cuba-service для вызова метода:

<cuba-service service-name="cuba_ServerInfoService"
              method="getReleaseNumber"
              data="{{releaseNumber}}"
              handle-as="text"></cuba-service>

Release number: [[releaseNumber]]

Создание Сущности

С помощью элементов cuba-entity-form и cuba-service-form можно легко отправлять данные на backend.

В примере ниже мы связываем объект user, который нужно сохранить, со свойством entity.

<cuba-entity-form id="entityForm"
                  entity-name="sec$User"
                  entity="[[user]]"
                  on-cuba-form-response="_handleFormResponse"
                  on-cuba-form-error="_handleFormError">

  <label>Login: <input type="text" name="login" value="{{user.login::input}}"></label>
  <label>Name: <input type="text" name="login" value="{{user.name::input}}"></label>

  <button on-tap="_submit">Submit</button>

</cuba-entity-form>

<paper-toast id="successToast">Entity created</paper-toast>
<paper-toast id="errorToast">Entity creation error</paper-toast>
_submit: function() {
  this.$.entityForm.submit();
},
_handleFormResponse: function() {
  this.user = getUserStub();
  this.$.successToast.open();
},
_handleFormError: function() {
  this.$.errorToast.open();
}

Необходимо разрешить анонимный доступ к REST API, если вы хотите использовать приведённые выше примеры без обязательного входа в систему.