перевести элемент выбора HTML в Grails - PullRequest
3 голосов
/ 05 августа 2011

думал, что это будет проще .... представьте <g:select /> вот так:

<g:select name="type.id" from="${Type.list()}"   
          value="${domainInstance?.type?.id}"  />

с двумя классами доменов, как это (пожалуйста, прости меня, если эти искусственные классы не без ошибок)

class Domain {
  Type type
}

class Type {
  String name
}

Теперь я хотел бы перевести записи элемента select.Следующий код сначала выглядел хорошо:

<g:select name="type.id" from="${Type.list()}" 
            valueMessagePrefix="type.name"  
                value="${domainInstance?.type?.id}"  />

с такими записями в наборе сообщений:

type.name.type1 = red
type.name.type2 = green

Проблема: не только текст был переведен, но также и клавиши выбора!

Итак, я попытался добавить optionKey='id':

<g:select name="type.id" from="${Type.list()}" 
         valueMessagePrefix="type.name"  
             value="${domainInstance?.type?.id}"  
                optionKey='id' />

Это переключило ключи на идентификатор - отлично, но текст переключился на идентификатор тоже: - (

Есть идеи, как это решить?

Ответы [ 2 ]

4 голосов
/ 05 августа 2011

спасибо граальсу с открытым исходным кодом, я только что проверил код: http://grails.org/doc/latest/ref/Tags/select.html#select

Кажется, что valueMessagePrefix игнорируется, когда вы используете optionKey или optionValue.Но optionValue может принять закрытие:

<g:select name="type.id" from="${Type.list()}" 
         value="${domainInstance?.type?.id}"  
            optionKey="id" 
            optionValue="${ {name->g.message(code:'type.name'+name) } }"/>

по крайней мере, это работает.

1 голос
/ 05 августа 2011

Разве вы не можете просто добавить optionValue?

<g:select name="type.id" from="${Type.list()}" 
         valueMessagePrefix="type.name"  
             value="${domainInstance?.type?.id}"  
                optionKey='id' 
                optionValue='name'/>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...