Comment enregistrer des lignes d'une grille que j'ai fait un changement de
J'ai utilisé ng-ressource pour obtenir des données à partir de mon serveur, puis de placer les données dans une grille de table comme ceci:
<div ng-form name="grid">
<button type="submit" data-ng-disabled="grid.$pristine">Save</button>
<div class="no-margin">
<table width="100%" cellspacing="0" class="form table">
<thead class="table-header">
<tr>
<th>ID</th>
<th>Title</th>
</tr>
</thead>
<tbody class="grid">
<tr data-ng-repeat="row in grid.data">
<td>{{ row.contentId }}</td>
<td><input type="text" ng-model="row.title" /></td>
</tr>
</tbody>
</table>
</div>
</div>
Est-il une manière que je peux faire en sorte qu'en cliquant sur le bouton Soumettre vérifie à travers la grille pour les lignes qui ont changé et appelle ensuite une putEntity(row)
fonction avec la ligne comme argument?
- vous pouvez faire quelque chose comme ceci: jsfiddle.net/MGnAN
Vous devez vous connecter pour publier un commentaire.
Vous pourriez faire un peu de moyens, et n'oubliez pas tous les NgModelController a un $drapeau sale qui peut l'utiliser pour vérifier si l'entrée a changé. Mais je dirais que le plus simple est juste pour ce faire:
Modifier pour HTML:
En JS:
row.title
.Voici quelque chose qui pourrait fonctionner. Il est construit avec le JSFiddle de la première observation de base.
Tout d'abord, j'ai changé le
data-ng-disabled
attributchanges.length <= 0
et a ajouté$scope.changes = []
pour le contrôleur.Puis j'ai ajouté une montre sur
$scope.data
En gros, cela fonctionne à travers le tableau et vérifie si quelque chose a changé à l'aide de angulaire.est égal à. Si un objet a changé, il est vérifié s'il existe dans
$scope.changes
déjà. Si elle le fait, elle est retirée. Après quenewVal[i]
est poussé à$scope.changes
La
$scope.indexOfExisting
est pris de cette SORTE de questionEnfin, j'ai fait le
$scope.checkChange()
ressembleCela vous donnera alors la possibilité de présenter uniquement les lignes qui ont été modifiées.
J'ai décidé de le faire comme suit:
C'est là où je obtenir les données, puis de faire une copie de celui-ci:
Ensuite, quand il s'agit de sauver-je utiliser angulaire.est égal à comparer avec une sauvegarde:
J'ai fait quelque chose de tout à fait semblable à moi, et j'ai utilisé d'une manière différente, j'ai décidé de lier directement tous les ng-modèles pour les données, permettez-moi de travailler avec l'index si j'ai besoin de vérifier à chaque ligne, mais je pourrais aussi décider d'envoyer l'ensemble des données au serveur
Alors, je viens de regarder toutes les modifications apportées à chaque indice (même avec le big data, j'ai juste à ajouter/supprimer un entier) et les stocker dans un tableau
Une fois terminé, je peux cliquer sur le bouton "soumettre", qui passe en boucle sur tous les index que j'ai touché, pour vérifier si le contenu est vraiment différent de celui d'origine, et puis je fais ce que je veux avec elle (comme l'appel d'une putEntity fonction, si j'en avais un)
J'ai fait du violon en fonction de votre code html, il sera plus facile de jouer avec elle qu'avec un copier/coller du code ici : http://jsfiddle.net/DotDotDot/nNwqr/1/
Le principal changement dans le code HTML de cette partie, la liaison du modèle aux données et en ajoutant un changement écouteur
Je pense que la partie javascript est tout à fait compréhensible, je me connecte index pendant que les données sont modifiées, puis, plus tard, quand je clique sur le bouton submit, il peut appeler le droit de la fonction sur les lignes modifiées, selon le connecté index