我的ng-model没有更新我的$ scope值?

时间:2014-09-05 16:52:44

标签: javascript angularjs scope

我正在尝试为数字创建输入字段,以便使用ng-model自动更新我的表格。

这是我的控制器:

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);
                }
            }
        }
    });
});

以下是输入字段的部分:

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

但是,如果我运行我的应用程序,它既不会更新我的表,因为我更改数字也不会返回控制台“通过!”消息。

我做错了什么,我该如何解决?

3 个答案:

答案 0 :(得分:1)

您应该对此https://docs.angularjs.org/api/ng/filter/filter

使用AngularJS过滤器

否则你需要使用$ scope。$ apply http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

答案 1 :(得分:0)

确保在视图中指定了控制器:

ng-controller="CarsByRatingCtrl"

您需要在范围变量上使用监视来自动对该变量运行更新。

$scope.$watch('minReviewNum', function() { //... });

答案 2 :(得分:-1)

使用它:

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

作为控制器使用它:

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();
});