我如何有条件地更改角度滤波器的参数

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.flagtrue,我们会在 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的多个角度滤波器 - 有更好的方法吗?

如何为扩展卡尔曼滤波器估计 R 中的参数

MATLAB-卡尔曼滤波简单运用示例

滤波器稳定性与极点

javascript 控制器中的角度滤波器(通过$ filter)

I2C总线的SDA.SCL用示波器测量没有波形,请问要在啥条件下才可以测量到波形?