Angularjs:如果输入的值不是[1,2,3,4],如何避免过滤?

Angularjs: How to avoid filtering if I enter value other than [1,2,3,4]?

本文关键字:免过滤 何避 输入 如果 Angularjs      更新时间:2023-09-26

当我在文本框中输入其他数字时,如0或5等,我想避免过滤。

<div ng-app="">
<input type="text" ng-model="search">
<div ng-repeat='val in [1,2, 3, 4] | filter:search'>
  {{val}}
</div>

我是新来的角。怎么做呢?

我包含了JSFiddle

你可以在文本框中使用if -pattern,这样它就不会触发过滤器

工作小提琴

代码片段:

<input type="text" ng-pattern="/^[1-4]$/" ng-model="search">

V31的答案是你想走的路。除非你的问题只是你想要做的事情的一个概括版本。

按函数显示过滤器

function ctrl($scope) {
    $scope.col = [1, 2, 3, 4];
    $scope.go = function(search) {
        if (!search) return null;
        var val = parseInt(search);
        return $scope.col.indexOf(val) > -1 ? val : null;
    }
};