Angular,toggle limitTo via boolean(custom limitTo?)

时间:2015-05-26 13:12:15

标签: javascript angularjs

因此,我尝试使用预定义的量在angularTo上实现某种切换效果。我的意思是,进来的数据的值为“showMore”,它是一个布尔值。如果是真的,我所在的重复将被限制为5,否则将没有任何限制。我想知道解决这样一个问题的最佳方法是什么?所以我有重复的例子:

 <div ng-repeat="item in filter.values track by $index" class="builder-result-filter-value checkbox" value="item" update-filter="updateFilter">

我想要这样的事情:

 $scope.limitValue = 5;
 <div ng-repeat="item in filter.values track by $index | limitTo: limitValue" class="builder-result-filter-value checkbox" value="item" update-filter="updateFilter">

但是过滤数据上有值

filter.showMore = boolean;

所以我希望这个布尔值能够控制重复使用limitTo:5,还是没有限制。

我想到了一种做某事的方法,比如

 <div ng-if="filter.showMore" ng-repeat="item in filter.values track by $index | limitTo: limitValue">
 <div ng-if="!filter.showMore" ng-repeat="item in filter.values track by $index">

但我认为必须有更优雅的方式。非常感谢任何建议/意见。谢谢!

2 个答案:

答案 0 :(得分:2)

无需使用ng-if。您可以使用limitTo中的表达式(例如limitTo: filter.showMore ? limitValue: filter.values.length

在HTML本身上执行此操作

<强>标记

<div ng-repeat="item in filter.values | limitTo: filter.showMore ? limitValue: filter.values.length track by $index">

答案 1 :(得分:0)

您可以尝试在控制器中执行该逻辑。像这样:

if (filter.showMore) {
    $scope.limitValue = 5;
else {
    $scope.limitValue = null;
}

你的html看起来像这样:

<div ng-repeat="item in filter.values track by $index | limitTo: limitValue">