喜欢在标签集的游戏教程中(自定义crud字段);我想在用户选择标签时添加新功能,然后javascript应该获得当前用户(models.user)并调用方法user.doSomething()。这可以在CRUD自定义字段中执行吗? (比如yabe标签的教程?)。
有没有办法我可以将自定义CRUD字段作为复选框列表,当用户检查一些复选框时,我应该编写代码(可能是javascript)获取当前登录用户,然后调用该用户模型上的方法?
感谢。
答案 0 :(得分:1)
以下是播放教程中的示例(自定义crud字段)。我想你想在点击标签时执行一个动作。这可以简单地完成如下所示
#{crud.form}
#{crud.custom 'tags'}
<label for="tags">
&{'tags'}
</label>
(...)
<div class="tags-list">
#{list items:models.Tag.findAll(), as:'tag'}
<span id="${tag.id}" onclick="toggle(this)" class="tag ${object.tags.contains(tag) ? 'selected' : ''}">
/**** ADD An ACTION CALL HERE ******/
<a href="@{Application.getConnected().doSomething()}">${tag}</a>
/**** END *****/
</span>
<input id="h${tag.id}" type="hidden" name="${fieldName}"
value="${object.tags.contains(tag) ? tag.id : ''}" />
#{/list}
</div>
#{/crud.custom}
#{/crud.form}
你必须在你的控制器(也许是Application.java)中实现你自己的方法getConnected()。假设您使用安全模块,它将类似于
void getConnected(){
if(Security.isConnected()) {
User user = User.find("byEmail", Security.connected()).first();
renderArgs.put("user", user);
}
}