Compiles a string with markup into an interpolation function. This service is used by the HTML $compile service for data binding. See $interpolateProvider for configuring the interpolation markup.
var $interpolate = ...; // injected
var exp = $interpolate('Hello {{name | uppercase}}!');
expect(exp({name:'Angular'}).toEqual('Hello ANGULAR!');
$interpolate
takes an optional fourth argument, allOrNothing
. If allOrNothing
is
true
, the interpolation function will return undefined
unless all embedded expressions
evaluate to a value other than undefined
.
var $interpolate = ...; // injected
var context = {greeting: 'Hello', name: undefined };
// default "forgiving" mode
var exp = $interpolate('{{greeting}} {{name}}!');
expect(exp(context)).toEqual('Hello !');
// "allOrNothing" mode
exp = $interpolate('{{greeting}} {{name}}!', false, null, true);
expect(exp(context, true)).toBeUndefined();
context.name = 'Angular';
expect(exp(context, true)).toEqual('Hello Angular!');
allOrNothing
is useful for interpolating URLs. ngSrc
and ngSrcset
use this behavior.
$interpolate(text, [mustHaveExpression], [trustedContext], [allOrNothing]);
Param | Type | Details |
---|---|---|
text | string |
The text with markup to interpolate. |
mustHaveExpression
(optional)
|
boolean |
if set to true then the interpolation string must have embedded expression in order to return an interpolation function. Strings with no embedded expression will return null for the interpolation function. |
trustedContext
(optional)
|
string |
when provided, the returned function passes the interpolated result through $sce.getTrusted(interpolatedResult, trustedContext) before returning it. Refer to the $sce service that provides Strict Contextual Escaping for details. |
allOrNothing
(optional)
|
boolean |
if |
function(context) | an interpolation function which is used to compute the interpolated string. The function has these parameters:
|
startSymbol();
Symbol to denote the start of expression in the interpolated string. Defaults to {{
.
Use $interpolateProvider#startSymbol to change the symbol.
string | start symbol. |
endSymbol();
Symbol to denote the end of expression in the interpolated string. Defaults to }}
.
Use $interpolateProvider#endSymbol to change the symbol.
string | end symbol. |