Estoy tratando de hacer un campo de entrada para los números que actualizarían mi tabla automáticamente usando ng-model.

Aquí está mi controlador:

carApp.controller("CarsByRatingCtrl", function($scope, getAllCars){
    getAllCars.get().success(function(data){
        $scope.carList = data;
        $scope.minReviewNum = 0;

        if ($scope.minReviewNum > 0){
            console.log("passed!")
            for(var i=0;i<$scope.carList.length;i++){
                if ($scope.carList[i]["review"]<$scope.minReviewNum){
                    $scope.carList.splice(i, 1);
                }
            }
        }
    });
});

Aquí está la parte de mi campo de entrada:

<input type="number" min="0" step="10" value="0" name="num" ng-model="minReviewNum"></input>

Pero si ejecuto mi aplicación, no actualizará mi tabla a medida que cambie los números ni regrese a la consola "aprobada". mensaje.

¿Qué he hecho mal y cómo puedo solucionarlo?

0
Michael 5 sep. 2014 a las 20:52

3 respuestas

La mejor respuesta

Debe usar el filtro AngularJS para este https://docs.angularjs.org/api/ng/ filtro / filtro

De lo contrario, debe usar $ scope. $ Apply http://jimhoskins.com /2012/12/17/angularjs-and-apply.html

1
krl 5 sep. 2014 a las 17:11

Asegúrese en su vista y ha especificado el controlador:

ng-controller="CarsByRatingCtrl"

Debería usar un reloj en la variable de alcance para ejecutar actualizaciones automáticamente en esa variable.

$scope.$watch('minReviewNum', function() { //... });
0
user12121234 5 sep. 2014 a las 17:02

Utilizar esto :

<input type="number" min="0" step="10" value="0" name="num" ng-model="minReviewNum" ng-change="update()"></input>

Y como controlador usa esto:

carApp.controller("CarsByRatingCtrl", function($scope, getAllCars){
$scope.update=function(){
    getAllCars.get().success(function(data){
        $scope.carList = data;
        $scope.minReviewNum = 0;

        if ($scope.minReviewNum > 0){
            console.log("passed!")
            for(var i=0;i<$scope.carList.length;i++){
                if ($scope.carList[i]["review"]<$scope.minReviewNum){
                    $scope.carList.splice(i, 1);
                }
            }
        }
    });
}
$scope.update();
});
-1
Mukund Kumar 5 sep. 2014 a las 16:59