Grails 3: как показать доменные классы id и dateCreated с помощью f: display (плагин полей grails) - PullRequest
0 голосов
/ 06 марта 2019

С помощью grails легко показать все поля объекта домена, например:

<f:display bean="transaction"/>

Однако здесь не отображаются два критических свойства для этого конкретного домена: идентификатор и дата создания.

Я пробовал кроме = "" и кроме = "[]", но это не работает (я думаю, что это работает только на f: table).

Одна идея состоит в том, чтобы отобразить пропущенные поля, а также поля бинов, то есть:

 <f:display bean="transaction" property="id"/>
 <f:display bean="transaction"/>

Но это приводит к плохо отформатированному выводу. HTML это производит id:

        <div id="show-transaction" class="content scaffold-show" role="main">
        <h1>Show Transaction</h1>

        1
        <ol class="property-list transaction">

    <li class="fieldcontain">
        <span id="debit-label" class="property-label">Debit</span>
        <div class="property-value" aria-labelledby="debit-label">0</div>
    </li>

    <li class="fieldcontain">
        <span id="credit-label" class="property-label">Credit</span>
        <div class="property-value" aria-labelledby="credit-label">100</div>
    </li>

В результате id 1 форматируется без метки слева, тогда как остальные поля отцентрированы и имеют метку.

Есть ли простой способ "grails" исправить это? Один из вариантов - скопировать идентификатор в новое поле объекта домена с именем «theId» или аналогичным, используя событие, чтобы его всегда можно было легко отобразить.

Еще один вариант, который, как мне показалось, может сработать, - это создание пользовательской оболочки для каждого пропущенного поля. Однако, поскольку он должен использовать упорядоченный список, он оставляет большой разрыв между полем id и остальными полями (но, по крайней мере, он отчасти центрирован по метке с использованием этого метода.

Я создал fole Views / _fields / id / _displayWrapper.gsp и вставил в него:

<ol class="property-list transaction">
        <li class="fieldcontain">
            <span id="${property}-label" class="property-label">${property}</span>
            <div class="property-value" aria-labelledby="${property}-label">${value}</div>
        </li>
</ol>

Тогда, на мой взгляд, у меня есть:

<f:display bean="transaction" property="id" wrapper="id"/>
<f:display bean="transaction"/>

Однако из-за большого вертикального разрыва между id и остальными полями это тоже не вариант.

...