Je suis nouveau dans JS angulaires, j'ai un tableau que je suis en boucle via la directive Si je veux supprimer ou copier, je peux le faire, fait?
Mais si je clique sur Modifier une case popup apparaîtra, je souhaite modifier les valeurs que ces valeurs mises à jour doivent mettre à jour dans la matrice. P> Comment puis-je le faire? P> NG-REPEET CODE>, et j'ai écrit le code pour copier, supprimer et éditer des valeurs dans le tableau.
var myApp=angular.module('myApp',[]);
myApp.controller('myCon',function($scope){
$scope.items=[{id:1,pname:'box1'},{id:2,pname:'box2'}, {id:3,pname:'box3'}];
$scope.removeStudent=function($index){
$scope.items.splice($index,1);
}
$scope.copyrow=function($index){
$scope.len=$scope.items.length;
$scope.ids=$scope.items[$index].id;
$scope.pnames=$scope.items[$index].pname
$scope.items.push({
id:$scope.len+1,
pname:$scope.pnames
});
}
$scope.editrow=function($index){
$scope.istrue=true;
$scope.editedid=$scope.items[$index].id;
$scope.editedname=$scope.items[$index].pname;
}
$scope.closepopup=function(){
$scope.istrue=false;
}
$scope.save=function($index){
$scope.istrue=false;
$scope.s.name=$scope.editedname;
}
});
4 Réponses :
Le moyen le plus simple consiste à utiliser angular.copy pour créer Un clone de l'objet lorsque Modifier est cliqué, puis lorsque vous avez cliqué sur Enregistrer, copiez les données sur l'élément de la matrice.
premier intitilisé $ périmètre.ediditem
<div class="editpopup editpopup-{{istrue}} ">
<p>edit id:<input type="text" ng-model="editedItem.id"></p>
<p>edit pname:<input type="text" ng-model="editedItem.pname"></p>
<button ng-click="save()">save</button>
<button ng-click="closepopup()">cancel</button>
</div>
Cela a bien fonctionné pour moi, y a-t-il une autre manière possible? Ou peut-être en angular2? Merci
Premièrement, enregistrez l'ancienne valeur comme ceci: puis, lorsque vous enregistrez, trouvez simplement le bon objet à l'aide de l'ancienne valeur et attribuez de nouvelles valeurs comme celle-ci: p> jsfiddle p> P>
J'ai eu ce même problème. Voici mon correctif
P>
Mon code d'origine qui n'a pas mis à jour l'objet P>
<div class="info" ng-repeat="email in vm.contactData.emails.other"> <input type="text" ng-model="vm.contactData.emails.other[$index].email" /> </div>
Prélompre d'abord la variable Vous pouvez maintenant obtenir $ étendue.getindex = 0; code> et obtenez l'index du tableau d'éléments lorsque vous cliquez sur le bouton Enregistrer. Attribuez ensuite
$ index code> à cette variable.
éléments [$ portée.getindex] code> n'importe où dans le contrôleur. Et vous aider à mettre à jour les éléments Array: P>
$scope.getIndex=0;
$scope.editrow=function($index){
$scope.getIndex=$index;
$scope.istrue=true;
$scope.editedid=$scope.items[$index].id;
$scope.editedname=$scope.items[$index].pname;
}
$scope.save=function($index){
$scope.istrue=false;
$scope.items[$scope.getIndex].id=$scope.editedid;
$scope.items[$scope.getIndex].pname=$scope.editedname;
}[enter link description here][1]