Angular - Pasar el valor de entrada y sume y reste sobre él en angular

 
Vista:
sin imagen de perfil

Pasar el valor de entrada y sume y reste sobre él en angular

Publicado por Miriam (4 intervenciones) el 12/01/2023 14:50:42
Necesito pasar la cantidad, por ejemplo 94, a la entrada de sumar y restar para que sume o reste de esa cantidad y no de cero.


1ZRGk

Mi html:

<tr *ngFor="let item of articulos">
<td>{{item.articulo}}</td>
<td>{{item.cantidad}}</td>
<td>
<input id="quantity" type="button" value="-" (click)="quantity=quantity-1">
<input type="text" id="quantity2" name="quantity" value="{{quantity}}">
<input id="quantity" type="button" value="+" (click)="quantity=quantity+1">
</td>
</tr>

Mis ts:


quantity: number;

constructor(private datosService: DatosService) {
this.quantity = 0;
}
Necesito que me aparezca el 94 y el 60 donde pone el cero en la ficha y poder sumar y restar.

He intentado cambiar cantidad a {{item.quantity}} en la siguiente línea y se pasan los valores pero no me deja sumar y restar sobre el valor ya que ya no se haría la operación sobre cantidad.

<input type="text" id="quantity2" name="quantity" value="{{item.cantidad}}">
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Enrique
Val: 11
Ha mantenido su posición en Angular (en relación al último mes)
Gráfica de Angular

Pasar el valor de entrada y sume y reste sobre él en angular

Publicado por Enrique (8 intervenciones) el 23/01/2023 22:55:34
1. Lo que yo haría primero es aplicar este cambio en el input
1
2
3
<input  type="button" value="-" (click)="quantity=quantity-1" [disabled]="item.quantity = 1">
<input type="number" min="0" max="{{+item.cantidad}}" id="queantity" name="quantity" value="{{item.quantity}}">
<input type="button" value="+" (click)="quantity=quantity+1" [disabled]="item.quantity = item.cantidad">
el + sirve para forzar el casteo a un valor númerico


2. en tu metodo donde cargar los datos de articulos despues de la carga haría lo siguiente

1
2
3
4
this.articulos = this.articulos.map(item=>{
    var newItem = Object.assign(item,{quantity:item.cantidad});
    return newItem;
});

No es necesario ocupar tantos ids en los botones e inputs, a menos que estes intentando acceder a sus valores con js puro, a lo cual no estarías usando correctamente angular2


Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar