7
votes

Motif correspondant sur objet.member dans la lecture 2.0 Modèles

Selon le Lecture 2.0 Documentation , la correspondance des motifs peut être effectuée dans un modèle comme: < Pré> xxx

Le texte entre les crochets après les expressions de cas est traité comme une sortie (par exemple HTML), et cela est tout à fait pratique.

Cependant, lorsque vous essayez d'utiliser une expression correspondante Ce n'est pas une variable simple, telle que l'objet.member, comme celui-ci: xxx

Il en résulte une erreur de compilation: "')' attendu mais" cas "trouvé" "

Utilisation définissant pour lier l'expression à une simple variable, comme ceci: xxx

fonctionne, mais il semble un peu encombrant.

est là un moyen approprié d'utiliser cette fonctionnalité de correspondance de modèle sur des expressions impliquant un objet et un membre (par exemple album.year )?


5 commentaires

est @ (album.year match {Case certains (Y: INT) => {@y} case non => { Nope }}) ou @ (album.year) correspondent {Case certains (Y : INT) => {@y} case Non => { Nope }} travail?


Non, aucun de ces travaux. Le premier résulte en "début de définition prévu", et le second résulte du même "") "attendu ..." Erreur comme ci-dessus.


@ {album.year Match {Case certains (Y: INT) => {@y} case non => { Nope }}} fonctionner?


Nope, même résultat ("début de définition prévu").


Merci pour la solution temporaire. Il semble être corrigé, mais pas encore sorti dans une version stable.


3 Réponses :


0
votes

Avez-vous essayé juste de le faire?

@album.year.getOrElse("<b>None</b>");


1 commentaires

Je sais que c'est une solution alternative possible de résoudre l'exemple simple qui apparaît dans ma question ... Toutefois, cet exemple était juste pour démontrer le problème, c'est-à-dire que la correspondance de modèle en jeu ne fonctionne pas complètement ou ne fonctionne pas comme prévu.



2
votes

Avez-vous essayé cela? xxx

voir ici pour un exemple: https://github.com/bjartek/computer-database-mongo/blob/matchtest/app/views/list.scala.html#l67 < P> On dirait que WhitSpace est très important d'avoir raison lorsque cela le faisait dans le modèle


1 commentaires

Ok, je viens de l'essayer avec l'espace blanche ajustée. Ça ne marche toujours pas. La différence entre votre exemple et votre mine est que votre expression correspondante est un identifiant simple (@company) et mine est @ objet.member.



1
votes

pas possible actuellement (dans la version 2.0.1), comme il s'agit d'un bogue confirmé:

https: //play.lightHouseApp. Com / Projects / 82401 / Billets / 46-Support-plus-complex-complex-relève


0 commentaires