2013-08-29 2 views
0

Может ли кто-нибудь указать мне правильное направление правильной функции в Grails для реализации динамически изменяющихся атрибутов в моих представлениях? Например, когда экземпляр класса домена находится на определенном этапе рабочего процесса, я хочу, чтобы определенные подсказки полей, метки кнопок и возможности изменения данных были конкретными для этого шага. Я, вероятно, сохраню эти атрибуты в другом классе домена, но я не уверен, как их применять, когда я выполняю, скажем, метод редактирования экземпляра данных. Это были пользовательские теги, или я просто заменяю все эти атрибуты в своих представлениях тегами переменных и передаю значения из контроллера? Поисковый запрос, чтобы начать меня, в порядке. Благодарю.Как реализовать свойства динамического вида в Grails

+1

просто передайте их параметру 'model' –

ответ

0

Спасибо за ваш ответ @micha. В частности, мне интересно, что лучше всего для динамического изменения визуальных аспектов страницы (просмотра). Думаю, я ответил на свой вопрос, взглянув на точки зрения динамически обоснованного домена. Например, поле подсказки находятся в форме:

<label for="last"> 
    <g:message code="employee.last.label" default="Last" /> 
</label> 

Таким образом, вы можете рассчитывать, что все запросы должны быть в вашем контроллере/службы, или запросить их из базы данных, и передать их в вместе с данными который входит в поля. Я просто проверял, ожидал ли Grails этой необходимости и облегчил ее через какой-то конкретный аспект архитектуры.

1

В рамках действия контроллера вы можете вернуть модель (Карта). Данные из этой модели можно прочитать в просмотрах:

class MyController { 
    def test() { 
    return [myData: 'hello', myOtherData: 42] 
    } 
} 

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

... 
<h1>${ myData }</h1> 
<g:if test="${ myOtherData == 42}"> 
    <p>${ myOtherData }</p> 
</g:if> 
... 

Если вы хотите, чтобы вернуть другой вид с моделью из контроллер можно использовать метод визуализации:

render view: 'myview', model: [myData: 42] 

Смотрите раздел Models and Views из документации Grails для получения более подробной информации.

Смежные вопросы