Angularjs 动态限幅滤波器在ng重复中的应用

Angularjs 动态限幅滤波器在ng重复中的应用,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我正在将一个参数传递到一个指令中。对于ng repeat <tr ng-repeat="trans in transactions | limitTo:limit = limit > 0 ? limit : 100000"> 指令可能不需要上限。我可以很容易地做上面列出的事情,但我不喜欢固定的上限。在我的情况下,它是不会被击中的,但它感觉很邋遢 有人有更优雅的解决方案吗?你可以通过而不是100000: <tr ng-repeat="trans in transact

我正在将一个参数传递到一个指令中。对于
ng repeat

<tr ng-repeat="trans in transactions | limitTo:limit = limit > 0 ? limit : 100000">

指令可能不需要上限。我可以很容易地做上面列出的事情,但我不喜欢固定的上限。在我的情况下,它是不会被击中的,但它感觉很邋遢

有人有更优雅的解决方案吗?

你可以通过而不是100000:

<tr ng-repeat="trans in transactions | limitTo:limit = limit > 0 ? limit : 'Infinity'">

您可以定义自己的过滤器:

app.filter('optionalLimitTo', function($filter) {
    function optionalLimitTo(input, optionalLimit) {
        if (optionalLimit) {
            return $filter('limitTo')(input, optionalLimit);
        }
        else {
            return input;
        }
    }
    return optionalLimitTo;
}

另一种解决方案是将限制设置为等于数组长度

示例:我想显示带有搜索输入的分页表,当输入值与“”不同时,应禁用分页,以便在同一视图中显示所有筛选项


...
app.filter('optionalLimitTo', function($filter) {
    function optionalLimitTo(input, optionalLimit) {
        if (optionalLimit) {
            return $filter('limitTo')(input, optionalLimit);
        }
        else {
            return input;
        }
    }
    return optionalLimitTo;
}