appeler la méthode modèle play framework de vue javascript
-
27-10-2019 - |
Question
Comme dans le tutoriel de jeu pour le jeu Tags (Customize champ crud); Je veux ajouter une nouvelle fonctionnalité lorsque l'utilisateur sélectionne une balise javascript puis doit obtenir l'utilisateur actuel (models.user) et appeler une méthode user.doSomething (). est-ce possible de le faire dans un champ personnalisé CRUD? (Comme dans le tutoriel pour les balises yabe?).
est-il un moyen que je peux faire un champ CRUD personnalisé comme une liste de cases à cocher et lorsque l'utilisateur vérifier quelques cases à cocher alors je devrais écrire du code (peut-être javascript) qui obtient actuellement connecté à l'utilisateur puis appeler une méthode sur cet utilisateur modèle?
merci.
La solution
Voici l'exemple du tutoriel de jeu (Customize champ crud). Je suppose que vous voulez exécuter une action lorsqu'une étiquette est cliqué. qui peut être fait simplement comme indiqué ci-dessous
#{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}
vous devez implémenter la méthode GetConnected () par votre contrôleur auto en vous (peut-être Application.java). en supposant que vous utilisez le Module sécurisé ce sera quelque chose comme
void getConnected(){
if(Security.isConnected()) {
User user = User.find("byEmail", Security.connected()).first();
renderArgs.put("user", user);
}
}