Typesafe config: Comment faire pour effectuer une itération sur les éléments de configuration
Dans mon Jeu application j'ai une configuration comme ceci:
social {
twitter {
url="https://twitter.com"
logo="images/twitter.png"
}
facebook {
url="https://www.facebook.com"
logo="images/facebook.png"
}
}
Ho dois-je effectuer une itération sur tous les social
entrées pour obtenir url
et logo
pour chaque entrée?
<table border="0" cellspacing="0" cellpadding="2"><tr>
@configuration.getConfig("social").map { config =>
@for(item <- config.entrySet) {
<td><a href="item.getString("url")">
<img src="@routes.Assets.at("item.getString("logo")").absoluteURL()" width="24" height="24"/></a></td>
}
}
</table>
Bien sûr, item.getString
dans l'extrait de code ci-dessus ne fonctionne pas... ça montre juste ce que je suis en train de réaliser.
L'objectif final serait de pouvoir ajouter de social url sans avoir à modifier le modèle de page.
OriginalL'auteur j3d | 2013-12-14
Vous devez vous connecter pour publier un commentaire.
Si vous modifiez la configuration pour l':
Vous pourriez le faire comme ceci:
Certains de vos entrées semblent avoir des virgules séparant et d'autres non. Faute de frappe?
Fixe, merci @kfkhalili!
OriginalL'auteur Paweł Kozikowski
Pour la postérité, voici une autre façon de parcourir une imbriqués config comme vous l'avez fait. Je préfère ce format du tableau et je préfère faire ma config plus propre que le code.
Je suis sûr que l'OP peut le convertir en un Tour de modèle. C'est aussi propre que je peux l'obtenir.
OriginalL'auteur Cole Stanfield
Dans le cas où vous vous êtes à l'aide de java,ce pourrait être une solution :
OriginalL'auteur Haiyuan Zhang
socialConfig.de la racine.la carte ne fonctionne pas.
Voici ma solution -
Où extractSubConfig est une méthode qui provoque une ERREUR /Config (un scalaz disjonction) et traverseErrorOr est une méthode pour parcourir la liste et les processus de tous les éléments ou échouer et retourner échec de la disjonction en cas d'échec à tout point de. Cette méthode peut être effectuée sans scalaz, juste de poster une réponse pour aider les gens si ils veulent.
OriginalL'auteur Prashanth Acharya
OriginalL'auteur Rubber Duck