【问题标题】:Applying Angular ng-repeat filter on condition在条件下应用 Angular ng-repeat 过滤器
【发布时间】:2015-11-12 06:59:48
【问题描述】:

我是 Angular 新手,我想知道如何在 ng-repeat 指令中应用和删除过滤器,但我想在某些条件下删除或添加过滤器,例如使用 $stateParams 更改 URL

if($stateParams.x){
  //remove unique filter
}
else{
   //add unique filter
}

下面是我正在处理的代码

<div ng-app="app" ng-controller="MyCtrl as item">
<div >
<ul>
  <li ng-repeat="item in items | unique: 'column'" myfilter>
    {{ item.column }}
     </li>
   </ul>
</div>
</div>

这是一个 plunker 链接,我正在尝试这样做,但它不起作用。 http://plnkr.co/edit/zwy7slwOPfvLqJPVV1sk?p=preview

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    如果您在唯一过滤器中传递附加参数并带有一些标志以启用和禁用唯一过滤器,则可以做到这一点。换句话说,如果标志为真,那么您将使用独特的逻辑,否则您将只返回所有项目。已经回答了here 以及一个 plunker 示例

    【讨论】:

      【解决方案2】:

      如果你不想编写自己的过滤器,你可以有一个像这样的外部 ng-if:

      <div ng-app="app" ng-controller="MyCtrl as item">
      <div>
        <ul ng-if="$stateParams.x">
          <li ng-repeat="item in items | unique: 'column'" myfilter>
            {{ item.column }}
          </li>
        </ul>
        <ul ng-if="!$stateParams.x>
          <li ng-repeat="item in items">
            {{ item.column }}
          </li>
        </ul>
      </div>
      </div>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多