2013-05-06 3 views
0

je un morceau de code HTML en utilisant thymeleaf:Ajout de nouveaux éléments dynamycally avec ajax

<form id="form" action="/create" th:action="@{/create}" th:object="${form}"> 

    <input type="text" th:field="*{title}"/> 

    <div th:each="item, itemInfo : *{items}"> 
     <div> 
     <input type="text" th:field="*{items[__${itemInfo.index}__].text}" /> 
     </div> 
    </div> 

    <button id="addNewBtn" onClick="add()"/> 

    <button type="submit" value="Create"/> 

</form> 
objet formulaire

a une collection appelée 'articles'. Cliquer sur le bouton 'addNewBtn' appelle la méthode javascript 'add' où elle doit contenir le code qui peut ajouter un nouvel élément à la collection (et c'est mon problème ici - je ne sais pas à quoi ressemble ce code). Est-il possible d'ajouter un nouvel élément à la collection en utilisant ajax? Il est également important que le nouvel élément ajouté soit lié à un champ appelé "texte". Ou probablement il existe une autre solution? Fondamentalement, je dois créer l'objet (après soumettre le formulaire) avec le titre et beaucoup d'articles avec le texte qui peut être ajouté dynamiquement par un utilisateur.

Merci à l'avance

+0

Qu'est-ce que "Items" lorsque la page est initialement rendue? Est-ce vide? – hubbardr

+0

non, ils ne sont pas vides. Par défaut, cette collection contient 2 objets avec un champ: Texte de la chaîne et d'autres champs. – Shendor

Répondre

0

Vous pouvez appeler (à l'aide ajax) le modèle de la ligne HTML à partir du serveur en donnant un paramètre « index ».

+0

Pourriez-vous donner un exemple? Je me demande comment la liaison fonctionnera dans ce cas – Shendor

+1

Je n'ai pas d'exemple de cela mais je pense que cela devrait fonctionner aussi bien. Vous pouvez vérifier ce post que j'ai décrit comment je fais la même chose sans ajax. http://blog.florentlim.com/how-to-write-javascript-including-thymeleaf/ Il n'utilise pas ajax mais il crée dynamiquement une nouvelle ligne pour une liaison ultérieure. J'espère que ça peut vous aider – fliim

Questions connexes