我如何有条件地更改角度滤波器的参数
Posted
技术标签:
【中文标题】我如何有条件地更改角度滤波器的参数【英文标题】: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.flag
是 true
,我们会在 firstLastName 的末尾添加另一个单词。如果是这种情况,那么我希望省略号过滤器参数不同。理想情况下,像这样
app.firstLastName | app.flag? : ellipsesFilter:10 : ellipsesFilter:13
我尝试了各种方法,但都没有奏效。有人知道怎么做吗?
【问题讨论】:
将一组值传递给ellipsesFilter
并调整该数组的内容如何?
@Oliver 如何根据该布尔值调整内联数组的内容?
你不会的。您可以在控制器中执行此操作。否则可能会有点乱。可悲的是,我手头没有简单的示例代码,我知道它适用于您的情况。
【参考方案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 ;
【讨论】:
以上是关于我如何有条件地更改角度滤波器的参数的主要内容,如果未能解决你的问题,请参考以下文章
用于ng-repeat的多个角度滤波器 - 有更好的方法吗?