J'ai des données JSON de Ce que je suis confronté, c'est si j'ai ajouté deux rangées pour Mon code pour mettre des éléments à destinationPos = []; p> < Pré> xxx pré> code pour calculer update strong>
la 1ère table em> strud> p> 2e table em> str> p> 8 Réponses : Au lieu de passer le Pour par exemple, considérez le code de l'échantillon, P>
Puis? Que dois-je faire dans le contrôleur?
Dans le contrôleur, vous devrez trouver un élément de la liste des éléments, puis vous devez mettre à jour cet élément. Pour cela, vous devez avoir une clé unique pour identifier cet élément qui indique indirectement l'emplacement de cet élément de la liste des articles. Quand Dans votre cas, vous utilisez un filtre de recherche avec Vous pouvez utiliser la solution de contournement de Je ne sais pas si je comprends votre cas, mais voici une Jsfiddle essayant de poser votre question: Exemple de travail a>. J'espère que cela vous aidera. Vous pouvez transmettre toute la collection et l'élément modifié à la fonction OnChange, puis trouvez l'élément par son identifiant et effectuez votre action (calculer le total). La même chose est possible de passer l'index de l'élément. P> C'est un exemple, vous pouvez le faire en quelques égards. p> Vous pouvez essayer comme suit le code ci-dessous et consulter également ce PLUNKER Lien pour votre exemple de scénario de travail. modèle: strong> p> contrôleur: strong> p> Il existe déjà de nombreuses solutions données par d'autres, alors je vais indiquer vos erreurs ici. Comme vous l'exposez dans le tir à l'écran, vous avez un montant total pour chaque ligne, en attribuant de nombreuses quantités totales dans Une seule variable Un moyen simple de résoudre ce problème est d'attribuer toutes les variables dans leur objet de ligne respective, chaque ligne peut donc avoir son propre montant total. Et une amélioration, vous pouvez transmettre l'article entier au lieu d'index uniquement dans l'autre fonction. P> Ceci peut être obtenu en modifiant la signature de la méthode Changeqty Vous pouvez l'envoyer «IT» dans la fonction Passitem éléments = []; code> affichés dans
ng-répéter $ code> à un autre tableau
itemsPos = [] code> à l'aide de la fonction Push (), ce tableau est alors affiché dans un autre < Code>
Code> (2e table) à l'aide de la répétition NG. Donc de
itemsPos = [] code> Les données sont affichées dans des champs de saisie tels que
item #, élémentdescription, prix code>. Qu'est-ce que j'essaie de faire après cela, j'ai ajouté des champs
réduction code> et
total code> que si j'essaie de mettre des valeurs dans la quantité, elle recalculera le total code> code> strong> Tout comme ce plunker: HTTP : //plnkr.co/edit/r3lon9? P = Aperçu . Mais sur ma version, c'est dans une table.
itempos = [] code>, si je modifie la 1ère rangée
Qté Code>, il calcule le total de la 2e rangée. ** Tout comme l'image ci-dessous ** p>
votes
Qnty code> à
Changeqty code> Fonction que vous devez passer la ligne entière. Il suffit de mettre la variable d'indexation utilisée dans
ng-répéter code> dans l'argument, de sorte que vous puissiez éditer une colonne de cette ligne particulière.
<div ng-repeat="x in records">
<button ng-click="changeQty(x)">
</div>
votes
ng-répéter code> est utilisé avec le filtre, puis un index
$ code> est différent de ce qui est attendu. P>
ng-répéter code>. Ainsi, lorsque l'élément est filtré à partir de la liste / tableau, alors
$ index code> est également modifié en fonction de la nouvelle liste filtrée. P>
ng-cache code> où la ligne sera masquée mais
$ index code> sera maintenue ou vous pouvez passer quelque chose d'un seul objet unique ou complet à la fonction au lieu de
$ index code>. p>
votes
votes
$scope.changeQty = function(item) {
if(item.qty>0){
item.subTotal = parseInt(item.price*item.qty);
}
getTotal();
};
function getTotal(){
var tot=0;
for (var i = 0; i < $scope.itemForPOS.length; i++) {
tot = tot + $scope.itemForPOS[i].subTotal;
}
$scope.totalAmount= tot;
}
votes
$ portée.totalamount code> va créer un problème. Identique à
$ portée.presyo code>. P>
ng-modèle code> pour chaque entrée doit également être lié à l'objet de ligne, donc la quantité de quantité 1 ligne ne mettrait pas à jour la quantité sur d'autres lignes. P>
// instead of
$scope.passItem = function(index) {
var itemNu = $scope.itemLoad[index].itemNo;
var descrptn = $scope.itemLoad[index].desc;
var cashPrice = $scope.itemLoad[index].cash;
// do this
$scope.passItem = function(item) {
var itemNu = item.itemNo;
var descrptn = item.desc;
var cashPrice = item.cash;
votes
votes
$scope.passItem = function(item) {
var itemNu = item.itemNo;
var descrptn = item.desc;
var cashPrice = item.cash;
var qty = 1;
var totalSum = cashPrice*qty;
console.log(totalSum)
$scope.presyo = cashPrice;
$scope.itemsPOS.push({'code':itemNu, 'name':descrptn, 'price': cashPrice, 'qty': qty, 'dscnt': 0, 'subTotal': totalSum});
console.log($scope.itemsPOS)
$scope.counter = $scope.itemsPOS.length;
votes
$scope.passItem = function(index) {
var seletectedItem = JSON.parse(JSON.stringify($scope.itemLoad[index]));
var itemNu = seletectedItem.itemNo;
var descrptn = seletectedItem.desc;
var cashPrice = seletectedItem.cash;
var qty = 1;
var totalSum = cashPrice*qty;
console.log(totalSum)
$scope.presyo = cashPrice;
$scope.itemsPOS.push({'code':itemNu, 'name':descrptn, 'price': cashPrice, 'qty': qty, 'dscnt': 0, 'subTotal': totalSum});
console.log($scope.itemsPOS)
$scope.counter = $scope.itemsPOS.length;
Pouvez-vous partager le code HTML aussi?