我正在尝试为数字创建输入字段,以便使用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>
但是,如果我运行我的应用程序,它既不会更新我的表,因为我更改数字也不会返回控制台“通过!”消息。
我做错了什么,我该如何解决?
答案 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();
});