输入字段修改时运行$ scope函数?

时间:2014-10-06 12:37:46

标签: javascript html angularjs

我有一个输入字段,您可以在其中指定最小评论数。我还有一个函数可以更新ng-repeat填充和创建表的数据。但我需要的是,当你在输入字段中键入一些数字时,我的这个函数会自动运行并更改数据,这意味着我的表是自动更新的。这是某种双向绑定。 (我不想直接在我的ng-repeat上使用过滤器,非常频繁地过滤角度并降低性能)

这是我的输入字段:

<label>Reviews Min: <input type="number" ng-init="revNum=30" class="form-control review-input" min="0" step="10" ng-model="filterValues.revNum" /></label>

这是我的ng-repeat

 ng-repeat="car in sortedCarList"

这是功能:

$scope.formattedTable = function(index){
    $scope.initCarList(index);
    $scope.sortedCarList = [];
    var carlistLength = $scope.carList.length;
    for (var i=0;i<carlistLength;i++){   // just checks every row if values passes user requirements like: min number of review and price range
        var rowBool = $scope.tableFilter($scope.carList[i]);
        if (rowBool){
            $scope.sortedCarList.push($scope.carList[i]);
        }
    }
}

我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

每次输入更改时,使用ng-change指令运行特定的函数。

<label>Reviews Min: <input type="number" ng-init="revNum=30" class="form-control review-input" min="0" step="10" ng-model="filterValues.revNum" ng-change="formattedTable()" /></label>

答案 1 :(得分:1)

有两种方法:

a)观察者:

$scope.$watch('filterValues.revNum', function() {
    $scope.formattedTable();
});

b)ng-change:

<label>Reviews Min: <input type="number" ng-init="revNum=30" class="form-control review-input" min="0" step="10" ng-model="filterValues.revNum" ng-change="formattedTable()"/></label>