Angularjs, problem with ng.repeat when doing push

0

I have a problem with angular, this is my code:

HTML

<div class="row">
                <div class="col-sm-12">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            <h3 class="panel-title">Insertar presupuesto</h3>
                        </div>
                        <div class="panel-body">
                            <!-- Trigger the modal with a button -->
                            <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#seleccionarp">Buscar producto</button>

                            <!-- Modal -->
                            <div id="seleccionarp" class="modal fade" role="dialog">
                                <div class="modal-dialog">

                                    <!-- Modal content-->
                                    <div class="modal-content">
                                        <div class="modal-header">
                                            <button type="button" class="close" data-dismiss="modal">&times;</button>
                                            <h4 class="modal-title">Seleccione su producto</h4>
                                        </div>
                                        <div class="modal-body">
                                            <label for="Buscar cliente  ">Buscar producto:</label>
                                            <input class="form-control" id="buscarproducto" ng-model="busqueda[queryBy]" value="" placeholder="Buscar" />
                                            <div>
                                                <table class="table table-hover">
                                                    <tr>
                                                        <th>Descripcion</th>
                                                        <th>Color</th>
                                                        <th>Talle</th>
                                                        <th>Stock</th>
                                                        <th>Precio</th>
                                                    </tr>
                                                    <tbody ng-repeat="emp in posts | filter:busqueda">
                                                        <tr ng-click="comprar(emp)" data-dismiss="modal">
                                                            <td>{{emp.nombre_producto}}</td>
                                                            <td>{{emp.color}}</td>
                                                            <td>{{emp.talle}}</td>
                                                            <td>{{emp.stock}}</td>
                                                            <td>{{emp.precio | currency}}</td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                            </div>
                                        </div>
                                        <div class="modal-footer">
                                            <button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
                                        </div>
                                    </div>

                                </div>
                            </div>
                            <table class="table table-hover">
                                <thead>
                                    <tr>
                                        <th>Nombre del producto</th>
                                        <th>Cantidad</th>
                                        <th>Precio</th>
                                        <th>Total</th>
                                        <th></th>
                                    </tr>
                                </thead>
                                <tbody ng-repeat="p in carrito track by $index">
                                    <input type="hidden" name="id_producto[]" value="{{p.id_producto}}" ng-model="p.id_producto" class="form-control">
                                    <input type="hidden" name="color[]" value="{{p.color}}" ng-model="p.color" class="form-control">
                                    <input type="hidden" name="talle[]" value="{{p.talle}}" ng-model="p.talle" class="form-control">
                                    <tr>
                                        <td><input type="text" name="nombre_producto[]" ng-model="p.nombre_producto" class="form-control"></td>
                                        <td><input type="number" name="stock[]" ng-model="p.stock" value="1" onClick="this.select();" class="form-control"></td>
                                        <td><input type="text" name="precio[]" ng-model="p.precio" onClick="this.select();" class="form-control" value=""></td>
                                        <td>{{p.stock * p.precio | currency}}</td>
                                        <td>
                                            <button type="button" class="btn btn-danger" ng-click="remove($index)">Eliminar</button>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                            <h2>Total:${{total()}}</h2><input type="hidden" name="total_remito" value="{{total()}}">
                            <button type="submit" name="button">guardar</button>

                        </div>
                    </div>

                </div>
  

AngularJS

app.controller("ctrlremitos", function($scope, $http) {

        $scope.posts = [];

        $scope.carrito = [];

        $scope.clienteasignado = [];

        $scope.clientes = [];

        $scope.busqueda = {}

        $scope.busquedaclientes = {}

        $scope.queryBy = '$'

        $scope.newPost = {};

        $http.get(base_url + "venta/get_productos").success(function(data, timeout) {
            $scope.posts = data;
        }).error(function(err) {
        })

        $http.get(base_url + "venta/get_clientes").success(function(data) {
            $scope.clientes = data;
        }).error(function(err) {
        })

        $scope.comprar = function(_item, index) {
            $scope.carrito.push(_item)
        }

        $scope.asignarcliente = function(_item) {
            $scope.clienteasignado.push(_item)
        }

        $scope.remove = function(index) {
                $scope.carrito.splice(index, 1);
            },

            $scope.total = function() {
                var total = 0;
                angular.forEach($scope.carrito, function(p) {
                    total += p.stock * p.precio;
                })
                return total;
            }

    });

The problem is that when I select a product, it does the push but the value is always the value of the stock, what I want is that when that push is done, always change the stock value by 1. Another thing that I notice is that when I change the value in the field "stock", it is also changed in the array of the search of products, I do not know what to do :( I have been trying to make this work correctly, I hope they illuminate my path.

Greetings

    
asked by Jet Market 21.12.2016 в 02:57
source

1 answer

0

Guys I did it my problem was the two-bind, forget that if I used this expression "::" in the given variable only makes one-bind, then in the field "stock" use ng-init with value 1 and ready > (, problems solved, thank you very much for being so attentive.) I leave a commit link

link

    
answered by 21.12.2016 / 08:30
source