Método de modelo de chamada de playframework de view javascript
-
27-10-2019 - |
Pergunta
Tutorial semelhante ao jogo para o conjunto de tags (personalizar o campo crud);Eu quero adicionar uma nova funcionalidade quando o usuário seleciona uma tag, então o javascript deve obter o usuário atual (models.user) e chamar um método user.doSomething ().isso é possível fazer em um campo personalizado CRUD?(como no tutorial para tags yabe?).
existe uma maneira de fazer um campo CRUD personalizado como uma lista de caixas de seleção e, quando o usuário marcar algumas caixas, devo escrever o código (talvez javascript) que obtém o usuário conectado no momento e, em seguida, chamar um método nesse modelo de usuário?
obrigado.
Solução
Aqui está o exemplo do tutorial de jogo (personalizar o campo crud).Suponho que você deseja executar uma ação quando uma tag é clicada.isso pode ser feito simplesmente conforme mostrado abaixo
#{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}
você tem que implementar o método getConnected () sozinho em seu controlador (talvez Application.java).supondo que você use o Módulo seguro , será algo como
void getConnected(){
if(Security.isConnected()) {
User user = User.find("byEmail", Security.connected()).first();
renderArgs.put("user", user);
}
}