This Angular module is a light-weight interpolator that replaces delimited keys in a string with values from a properties map. This module was created as a simple alternative for Angular's $interpolate
provider. A common use of this tool is for a template interpolation use-case that does not require $parse
, $interpolate
, or $compile
.
npm install --save angular-interpolate
bower install --save angular-interpolate
<script src="path/to/directory/angular-interpolate.js"></script>
- Angular.js (~1.4.0)
This module uses the default {{
and }}
delimiters to distinguish interpolation keys, and these
delimiters are configurable. Keys are matched to values in a properties
object.
Include angular-interpolate
as a dependency in your project.
angular.module("MyModule", ["angular-interpolate"]);
The Interpolate
provider accepts a string
argument, followed by a properties
object with
key-value assignments for interpolation.
var interpolated = Interpolate("I live with {{person1}} and {{person2}}.")({person1: "John", person2: "Jane"});
console.log(interpolated); // "I live with John and Jane."
The Interpolate
provider accepts an object
argument, which will effectively interpolate the values
for all keys in the object recursively, thus interpolating all cross-referenced keys in the object.
As one can easily make an object with a circular relationship, such as:
{
prop1: "{{prop2}}",
prop2: "{{prop1}}"
}
The Interpolate
function will detect the circular relationship and throwa "Loop detected" error.
var interpolated = Interpolate({person1: "John", person2: "Jane", people: "{{person1}} and {{person2}}"});
console.log(interpolated); // {person1: "John", person2: "Jane", people: "John and Jane"
The Interpolate
function accepts two additional parameters: open
and close
. By default, open
= {{
, and close
= }}
.
npm run build
- Build and minifynpm test
- Test
This project is licensed under the MIT License - see the LICENSE.txt file for details