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

$interpolate$filter是否彼此相关?两者在概念上有何不同?

最佳答案

您可以将$ 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的过滤器的函数。例如,“大写”过滤器将其参数转换为大写字母,“数字”过滤器将格式转换为数字,“日期”过滤器将格式转换为Date对象,您可以定义自己的命名过滤器,以对其参数进行任意操作。

10-04 15:44