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