Angular - 在嵌套的ng-repeat中使用ng-show替换过滤器

时间:2017-01-11 17:07:31

标签: javascript html angularjs

我在IE11上的Angular Material应用程序遇到了一些性能问题,并且一直在调查多个问题。我已根据官方建议采取了一些措施来纠正,但我注意到我认为会导致很多问题。

我们有一个产品页面,其中包含一组标签,可根据当前选定的类别显示/隐藏产品。单击选项卡时发生最大量的延迟。我认为这是因为我们应用的过滤器会在每次单击选项卡时销毁/重新创建DOM。我想使用ng-show,因为这似乎可以解决问题,但我们正在使用嵌套的ng-repeat指令,因此我不确定这是否有效。以下是对正在发生的事情的总体看法:

<div ng-repeat="InventoryItemSubCategory in vmProduct.products | filter: ($scope.selectedGroup !== 'All' || '') && $scope.selectedGroup | filter:$scope.query | groupBy:'InventoryItemSubCategory':'productsByCategory' track by $index">
<h2>{{InventoryItemSubCategory.InventoryItemSubCategory}}</h2>

<md-card class="product-card" ng-repeat="product in InventoryItemSubCategory.items track by $index" md-theme="default" md-theme-watch>
  <md-card-content>
    <div class="media">
    ...

这个想法是每个标签(组)有多个子组,每个子组都有多个项目。问题是,如果我尝试在顶级ng-show上使用ng-repeat,它不像过滤器那样过滤数组,因此内部ng-repeat元素无法正确显示。 / p>

所以我的问题是,这确实是我遇到的问题吗?如果是这样,是否有一种干净的方式来使用ng-show但是也可以过滤父数组,以便孩子ng-repeat能够正确使用它?

提前致谢!

0 个答案:

没有答案