2015-09-08 3 views
0

J'ai lu un livre avec scala écrit en 2013 et j'ai déjà trouvé quelques problèmes avec la dernière version de jeu. L'un d'eux était i18n Messages, que j'ai résolu avec succès. Mais maintenant, je rencontre un autre problème, qui est:Comment obtenir une portée flash - Play Framework avec Scala, maximum d'arguments dans le template

Auteur explique la portée flash. Et dans l'exemple dans le livre, il y a quelque chose comme: (intérieur modèle main.scala.html)

@(title: String)(content: Html)(implicit flash: Flash) 

Mais dans mon code, il doit être:

@(title: String)(content: Html)(implicit messages: Messages)(implicit flash: Flash) 

Et est là le problème. Quand j'ajoute (flash implicite: Flash) je reçois une erreur de mon IDE (IntelliJ IDEA) qui est: « mauvaise top déclaration de déclaration »

Je suppose que ce modèle a son nombre maximum de paramètres (modèles sont fonctions autant que je sache) donc je ne peux pas en ajouter un de plus. La question est de savoir comment obtenir l'objet de portée flash?

Veuillez m'expliquer l'idée de ces paramètres. Merci!

+3

Il ne peut y avoir qu'une seule liste des paramètres implicites dans une fonction comme ceci: @ (titre: String) (content: Html) (messages implicites: Messages, flash: Flash) – grotrianster

+0

@grotrianster écrivez-vous cela comme une réponse? –

Répondre

2

Il ne peut y avoir qu'une seule liste des paramètres implicites dans une fonction et doit être le dernier, comme celui-ci: @(title: String)(content: Html)(implicit messages: Messages, flash: Flash)

+0

J'ai remarqué que je reçois une erreur: impossible de trouver la valeur implicite pour le paramètre flash play.api.mvc.Flash quelle est mon erreur? – azalut

+0

Votre Action ne contient probablement pas de demande implicite, Action {demande implicite => Ok (...)} – grotrianster

+0

J'ai trouvé cette réponse sur playframework.com mais cela n'aide pas, j'ai une requête implicite => partout dans mes contrôleurs et ça ne marche toujours pas – azalut