我正在使用播放框架 1.2.3。如何使用 groovy 模板使用列表/地图中的值填充下拉列表(语法)?
问问题
793 次
2 回答
2
我正在使用 CRUD,它会自动执行。但是当你想自己做时,我在modules\crud\app\views\tags\crud\relationField.html
%{ pName = 'object.' + _name + '.' + play.db.Model.Manager.factoryFor(_field.property.relationType).keyName() }%
#{field 'object.' + _name}
<label for="${field.id}">
&{_name}
</label>
<input type="hidden" name="${pName}" value="" />
<select id="${field.id}" name="${pName}" multiple="yes">
%{ _field.choices.each() { }%
%{
selected = false;
if(field.error?.message != 'validation.required') {
if(params[pName]) {
selected = params.getAll(${pName}).contains(it._key().toString())
} else {
for (it2 in _value) {
if(it2._key() == it._key()) {
selected = true;
}
}
}
}
}%
<option value="${it._key()}" ${selected ? 'selected="true"'.raw() : ''}>${it}</option>
%{ } }%
</select>
我不确定这是否会立即起作用,因为您的控制器没有扩展 CRUD。但也许它有效,或者你必须编辑一些东西。
于 2012-06-08T22:06:51.353 回答
1
这有效 - 希望它有所帮助。
控制器:渲染(项目);
模板:#{list items, as:'item'} ${item.value} #{/}
于 2012-06-11T00:15:30.920 回答