AngularJS - фильтр $interpolate vs $

В AngularJS, $filter предоставляет способ форматирования данных, которые мы отображаем для пользователя. Тем не мение, $interpolate также позволяет нам в режиме реального времени обновлять строку текста.

Являются $interpolate а также $filter связаны друг с другом? Как эти два концептуально отличаются?

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. Например, фильтр "верхнего регистра" преобразует свои аргументы в верхний регистр, фильтр "числа" форматирует числа, фильтр "даты" форматирует объекты даты, и вы можете определить свои собственные именованные фильтры, которые выполняют произвольные действия с его аргументами.

Другие вопросы по тегам