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

时间:2014-07-29 07:15:24

标签: javascript angularjs

我想在文本框中添加其他数字(如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

2 个答案:

答案 0 :(得分:1)

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

Working Fiddle

代码段:

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

答案 1 :(得分:0)

V31的答案是您想要的方式。除非你的问题只是你想要做的一般化版本。

fiddle showing filter by function

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