AngularJS - $ interpolate vs $ filter

时间:2016-09-17 11:29:08

标签: javascript angularjs angularjs-filter angularjs-interpolate

在AngularJS中,$filter提供了一种格式化我们向用户显示的数据的方法。 但是,$interpolate还允许我们更新字符串 的文字。

$interpolate$filter是否相互关联?这两者在概念上有何不同?

1 个答案:

答案 0 :(得分:1)

您可以将$ interpolate()视为专用过滤器。

var interpolationFunction = $interpolate('{{thing}} is {{color}}.');

var grass = {thing: 'Grass', color: 'green'};
console.log(interpolationFunction(grass));

// Or just.
console.log(interpolationFunction({thing: 'Milk', color: 'white'}));
console.log(interpolationFunction({thing: 'The sky', color: 'blue'}));

这会产生:

Grass is green.
Milk is white.
The sky is blue.

您可以将$ interpolate(STRING)的返回值视为一个编译模板,稍后使用一组变量进行渲染。

相比之下,$ filter(NAME)返回一个先前已注册为名称为NAME的过滤器的函数。例如"大写" filter将其参数转换为大写,"数字"过滤器格式化数字,"日期"过滤格式Date对象,您可以定义自己的命名过滤器,使用其参数执行任意操作。