Angular 获取过滤后的 ng

编程入门 行业动态 更新时间:2024-10-07 12:26:32
本文介绍了Angular 获取过滤后的 ng-repeat 的长度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我已从 v 1.0.8 升级到 Angular 1.2.9,以帮助提高我的应用程序的性能.

我介绍了提高速度的轨道.

我曾经拥有的

我现在拥有的

我有分页来查找filteredItems的长度.那已经不存在了.此外,其他一些 JS 需要过滤项来进行日志记录、分析等

在 HTML 视图中,我可以获得应用过滤器后 ng-repeat 的长度

{{(结果 |过滤器:过滤器价格|过滤器:filterCarCategories |过滤器:filterCarTypes |过滤器: filterAirConditioning |过滤器:过滤器传输|过滤器:filterFourByFour |过滤器:filterFuelType |过滤器:filterNumberOfDoors |过滤器:filterOnAirport |过滤器:filterFuelPolicy |过滤器:filterUnlimitedMileage |过滤器:filterFreeCancellation |过滤器:filterTheftProtection |过滤器:filterCDW |过滤器:filterTaxesIncluded |过滤器:过滤器提供者).长度}}

有点啰嗦,但确实返回了我想要的数字.如何将其传递给 $scope ?

解决方案

您可以创建一个中间变量来保存过滤后的数组:

data-ng-repeat="结果过滤结果 = (结果 | filter:filterPrice | filter:filterCarCategories | etc.)"

然后可以使用:

filteredResults.length

I have upgraded to Angular 1.2.9 from v 1.0.8 to help with the performance of my app.

I have introduced track by which has improved the speed.

What I used to have

<div class="result row"
    data-ng-repeat="result in (filteredItems =
            (results |
            filter: filterPrice |
            filter: filterCategories |
            filter: filterTypes |
            filter: filterAirConditioning |
            filter: filterTransmission |
            filter: filterFourByFour |
            filter: filterFuelType |
            filter: filterNumberOfDoors |
            filter: filterOnAirport |
            filter: filterFuelPolicy |
            filter: filterUnlimitedMileage |
            filter: filterFreeCancellation |
            filter: filterTheftProtection |
            filter: filterCDW |
            filter: filterTaxesIncluded |
            filter: filterProviders ) )  |
        orderBy: [orderByOptions, orderByPriceLowToHigh, orderByPriority] |
        limitTo: pageSize">

what I have now

<div class="result row"
    data-ng-repeat="result in results |
        filter: filterPrice |
        filter: filterCarCategories |
        filter: filterCarTypes |
        filter: filterAirConditioning |
        filter: filterTransmission |
        filter: filterFourByFour |
        filter: filterFuelType |
        filter: filterNumberOfDoors |
        filter: filterOnAirport |
        filter: filterFuelPolicy |
        filter: filterUnlimitedMileage |
        filter: filterFreeCancellation |
        filter: filterTheftProtection |
        filter: filterCDW |
        filter: filterTaxesIncluded |
        filter: filterProviders |
        orderBy: [orderByOptions, orderByPriceLowToHigh, orderByPriority] |
        startFrom: currentPage*pageSize |
        limitTo: pageSize track by $index">

I have pagination which looked for the length of filteredItems. That no longer exists. Also, some other JS needs the filteredItems for logging, analytics, etc

In the HTML view I can get the length of the ng-repeat after filters have been applied

{{(results |
    filter: filterPrice |
    filter: filterCarCategories |
    filter: filterCarTypes |
    filter: filterAirConditioning |
    filter: filterTransmission |
    filter: filterFourByFour |
    filter: filterFuelType |
    filter: filterNumberOfDoors |
    filter: filterOnAirport |
    filter: filterFuelPolicy |
    filter: filterUnlimitedMileage |
    filter: filterFreeCancellation |
    filter: filterTheftProtection |
    filter: filterCDW |
    filter: filterTaxesIncluded |
    filter: filterProviders)
    .length}}

which is a bit of a mouthful but does return the number I want. How can I pass this to a $scope ?

解决方案

You can create an intermediate variable that will hold the filtered array:

data-ng-repeat="result in filteredResults = (results | filter:filterPrice | filter:filterCarCategories | etc.)"

and then can use:

filteredResults.length

这篇关于Angular 获取过滤后的 ng-repeat 的长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-21 18:24:47,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Angular   ng

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!