【问题标题】:Angular, toggle limitTo via boolean (custom limitTo?)Angular,通过布尔值切换limitTo(自定义limitTo?)
【发布时间】:2015-05-26 21:51:09
【问题描述】:

所以我试图以预定义的数量在角度限制到某种切换效果。我的意思是输入的数据有一个布尔值“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">

但我认为必须有一种更优雅的方式。将不胜感激任何建议/意见。谢谢!

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    无需使用ng-if。您可以在 HTML 本身上使用 limitTo 中的表达式,如 limitTo: filter.showMore ? limitValue: filter.values.length

    标记

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

    【讨论】:

      【解决方案2】:

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

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

      你的 html 看起来像这样:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-23
        • 1970-01-01
        • 2013-07-04
        • 2017-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多