【问题标题】:How do i conditionally change the parameter of an angular filter我如何有条件地更改角度滤波器的参数
【发布时间】:2014-05-24 21:31:30
【问题描述】:

我有一个自定义角度过滤器 ellipsesFilter,用于截断太长而无法放入特定表格的单词并添加省略号。

像这样:

<div>{{app.firstLastName | ellipsesFilter:13 }}</div>

但是,如果 app.flagtrue,我们会在 firstLastName 的末尾添加另一个单词。如果是这种情况,那么我希望省略号过滤器参数不同。理想情况下,像这样

{{app.firstLastName | app.flag? : ellipsesFilter:10 : ellipsesFilter:13}}

我尝试了各种方法,但都没有奏效。有人知道怎么做吗?

【问题讨论】:

  • 将一组值传递给ellipsesFilter 并调整该数组的内容如何?
  • @Oliver 如何根据该布尔值调整内联数组的内容?
  • 你不会的。您可以在控制器中执行此操作。否则可能会有点乱。可悲的是,我手头没有简单的示例代码,我知道它适用于您的情况。

标签: angularjs ternary-operator angularjs-filter


【解决方案1】:

你很接近..你实际上可以像这样使用三元运算符来切换参数值:

{{name | ellipsesFilter:flag ? 10 : 13}}

这是一个演示:http://plnkr.co/zWsNk1VzVgBZeoGb5NCP

【讨论】:

    【解决方案2】:

    您可以在范围上使用值吗?

    <div>{{app.firstLastName | ellipsesFilter:lengthToFilter }}</div>
    //js
    $scope.lengthToFilter =  $scope.app.flag? 13:10 
    

    它也很聪明,可以接受一个函数:

    <div>{{app.firstLastName | ellipsesFilter:getLengthToFilter() }}</div>   
    //js
    $scope.getLengthToFilter = function(){
          return $scope.app.flag? 13:10 ;
    }
    

    【讨论】:

      猜你喜欢
      • 2018-08-29
      • 2017-06-09
      • 1970-01-01
      • 2015-06-26
      • 2016-02-08
      • 2017-02-21
      • 2018-03-23
      • 2020-06-26
      • 2015-01-08
      相关资源
      最近更新 更多