Angular中是否有内置的方法来应用完整的过滤器表达式?

时间:2014-10-11 03:30:55

标签: angularjs angularjs-directive angular-ngmodel

简而言之:

如何获得通常在Angular表达式中指定的过滤器表达式"| filter1:arg1:arg2 | filter2:arg1",如下所示:{{ model | filter1:arg1:arg2 | filter2:arg1 }}并以编程方式应用它?

我可以使用正则表达式,然后使用$filter(name)(arg1, arg2),但我想知道是否有内置方式。

更广泛的上下文

我需要一种方法来过滤<input type="text">标记在没有影响底层模型时未显示的内容。这类似于excel中的单元格,其值可能为12.3556,但如果指定一个带有2个小数点的数字,则可以呈现12.36。但是,当它被编辑时,它将显示基础的完整值。

所以,我构建了viewFilter requires的指令ngModel,以便我可以执行以下操作:

<input ng-model="data" view-filter="filter1:arg1:arg2 | filter2:arg1" type="text">

感谢。

1 个答案:

答案 0 :(得分:1)

您可以选择以下之一,假设此代码位于指令内:

scope.$eval( "data |" + attrs.viewFilter );

另一种可能性是:

$parse( "data | " + attrs.viewFilter )( scope );

$parse服务的优势在于you can specify locals用于正在解析的表达式。